summaryrefslogtreecommitdiff
path: root/src/dotnet-library
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2007-07-24 17:30:23 +0000
committermichelou <michelou@epfl.ch>2007-07-24 17:30:23 +0000
commitd8504784b821fb64f411adf7c551ee4646e5f99c (patch)
tree73534241fb12d0b55970d9addc319dde9ebd6048 /src/dotnet-library
parent551e31ec7d1f3399cb1a0193f68268f292e96699 (diff)
downloadscala-d8504784b821fb64f411adf7c551ee4646e5f99c.tar.gz
scala-d8504784b821fb64f411adf7c551ee4646e5f99c.tar.bz2
scala-d8504784b821fb64f411adf7c551ee4646e5f99c.zip
added class scala.Random
Diffstat (limited to 'src/dotnet-library')
-rw-r--r--src/dotnet-library/scala/Random.scala74
1 files changed, 74 insertions, 0 deletions
diff --git a/src/dotnet-library/scala/Random.scala b/src/dotnet-library/scala/Random.scala
new file mode 100644
index 0000000000..45e3d6619d
--- /dev/null
+++ b/src/dotnet-library/scala/Random.scala
@@ -0,0 +1,74 @@
+/* __ *\
+** ________ ___ / / ___ Scala API **
+** / __/ __// _ | / / / _ | (c) 2006-2007, LAMP/EPFL **
+** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
+** /____/\___/_/ |_/____/_/ | | **
+** |/ **
+\* */
+
+// $Id: $
+
+
+package scala
+
+/**
+ * @author Stephane Micheloud
+ */
+class Random(self0: System.Random) {
+ private var rnd = self0 // see setSeed(seed)
+ def self = rnd
+
+ /** Creates a new random number generator using a single long seed. */
+ def this(seed: Long) = this(new System.Random(seed.toInt))
+
+ /** Creates a new random number generator using a single integer seed. */
+ def this(seed: Int) = this(new System.Random(seed))
+
+ /** Creates a new random number generator. */
+ def this() = this(Math.abs(System.Environment.TickCount))
+
+ /** Returns the next pseudorandom, uniformly distributed boolean value
+ * from this random number generator's sequence.
+ */
+ def nextBoolean(): Boolean = (nextInt() & 0x1) == 1
+
+ /** Generates random bytes and places them into a user-supplied byte
+ * array.
+ */
+ def nextBytes(bytes: Array[Byte]) { rnd.NextBytes(bytes) }
+
+ /** Returns the next pseudorandom, uniformly distributed double value
+ * between 0.0 and 1.0 from this random number generator's sequence.
+ */
+ def nextDouble(): Double = rnd.NextDouble()
+
+ /** Returns the next pseudorandom, uniformly distributed float value
+ * between 0.0 and 1.0 from this random number generator's sequence.
+ */
+ def nextFloat(): Float = nextDouble().toFloat
+
+ /** Returns the next pseudorandom, Gaussian ("normally") distributed
+ * double value with mean 0.0 and standard deviation 1.0 from this
+ * random number generator's sequence.
+ */
+ //def nextGaussian(): Double
+
+ /** Returns the next pseudorandom, uniformly distributed int value
+ * from this random number generator's sequence.
+ */
+ def nextInt(): Int = rnd.Next()
+
+ /** Returns a pseudorandom, uniformly distributed int value between 0
+ * (inclusive) and the specified value (exclusive), drawn from this
+ * random number generator's sequence.
+ */
+ def nextInt(n: Int): Int = rnd.Next(0, n)
+
+ /** Returns the next pseudorandom, uniformly distributed long value
+ * from this random number generator's sequence.
+ */
+ def nextLong(): Long = nextInt().toLong // 2x nextInt() ?!
+
+ def setSeed(seed: Long) { rnd = new System.Random(seed.toInt) }
+
+}