diff options
author | Hubert Plociniczak <hubert.plociniczak@epfl.ch> | 2011-11-02 14:34:35 +0000 |
---|---|---|
committer | Hubert Plociniczak <hubert.plociniczak@epfl.ch> | 2011-11-02 14:34:35 +0000 |
commit | b6778be91900b8161e705dc2598ef7af86842b0b (patch) | |
tree | d15e8ec18a37eec212f50f1ace27714d7e7d4d34 /test/pending/shootout/random.scala | |
parent | ac6c76f26d884a94d0c9ff54f055d3f9ab750bac (diff) | |
download | scala-b6778be91900b8161e705dc2598ef7af86842b0b.tar.gz scala-b6778be91900b8161e705dc2598ef7af86842b0b.tar.bz2 scala-b6778be91900b8161e705dc2598ef7af86842b0b.zip |
Begone t1737...
Diffstat (limited to 'test/pending/shootout/random.scala')
-rw-r--r-- | test/pending/shootout/random.scala | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/test/pending/shootout/random.scala b/test/pending/shootout/random.scala new file mode 100644 index 0000000000..0a86a35637 --- /dev/null +++ b/test/pending/shootout/random.scala @@ -0,0 +1,32 @@ +/* The Computer Language Shootout + http://shootout.alioth.debian.org/ + contributed by Isaac Gouy (Scala novice) +*/ + +object random { + def main(args: Array[String]) = { + var n = toPositiveInt(args); + var result: Double = 0 + + while (n>0) { result=generate(100.0); n=n-1; } + + Console.printf("{0,number,#.000000000}\n", result) + } + + private val IM = 139968; + private val IA = 3877; + private val IC = 29573; + private var seed = 42; + + def generate(max: Double) = { + seed = (seed * IA + IC) % IM; + max * seed / IM; + } + + private def toPositiveInt(s: Array[String]) = { + val i = + try { Integer.parseInt(s(0)); } + catch { case _ => 1 } + if (i>0) i; else 1; + } +} |