Random
open class Random : RandomGenerator, Serializable
| kotlin.Any | |
| ↳ | java.util.Random |
An instance of this class is used to generate a stream of pseudorandom numbers; its period is only 248. The class uses a 48-bit seed, which is modified using a linear congruential formula. (See Donald E. Knuth, The Art of Computer Programming, Volume 2, Third edition: Seminumerical Algorithms, Section 3.2.1.)
If two instances of Random are created with the same seed, and the same sequence of method calls is made for each, they will generate and return identical sequences of numbers. In order to guarantee this property, particular algorithms are specified for the class Random. Java implementations must use all the algorithms shown here for the class Random, for the sake of absolute portability of Java code. However, subclasses of class Random are permitted to use other algorithms, so long as they adhere to the general contracts for all the methods.
The algorithms implemented by class Random use a protected utility method that on each invocation can supply up to 32 pseudorandomly generated bits.
Many applications will find the method Math.random simpler to use.
Instances of java.util.Random are threadsafe. However, the concurrent use of the same java.util.Random instance across threads may encounter contention and consequent poor performance. Consider instead using java.util.concurrent.ThreadLocalRandom in multithreaded designs.
Instances of java.util.Random are not cryptographically secure. Consider instead using java.security.SecureRandom to get a cryptographically secure pseudo-random number generator for use by security-sensitive applications.
Summary
| Public constructors | |
|---|---|
Random()Creates a new random number generator. |
|
|
Creates a new random number generator using a single |
|
| Public methods | |
|---|---|
| open DoubleStream! |
doubles()Returns an effectively unlimited stream of pseudorandom |
| open DoubleStream! |
Returns an effectively unlimited stream of pseudorandom |
| open DoubleStream! |
Returns a stream producing the given |
| open DoubleStream! |
Returns a stream producing the given |
| open static Random! |
from(generator: RandomGenerator!)Returns an instance of |
| open IntStream! |
ints()Returns an effectively unlimited stream of pseudorandom |
| open IntStream! |
Returns an effectively unlimited stream of pseudorandom |
| open IntStream! |
Returns a stream producing the given |
| open IntStream! |
Returns a stream producing the given |
| open LongStream! |
longs()Returns an effectively unlimited stream of pseudorandom |
| open LongStream! |
Returns a stream producing the given |
| open LongStream! |
Returns an effectively unlimited stream of pseudorandom |
| open LongStream! |
Returns a stream producing the given |
| open Boolean |
Returns the next pseudorandom, uniformly distributed |
| open Unit |
Generates random bytes and places them into a user-supplied byte array. |
| open Double |
Returns the next pseudorandom, uniformly distributed |
| open Float |
Returns the next pseudorandom, uniformly distributed |
| open Double |
Returns the next pseudorandom, Gaussian ("normally") distributed |
| open Int |
nextInt()Returns the next pseudorandom, uniformly distributed |
| open Int |
Returns a pseudorandom, uniformly distributed |
| open Long |
nextLong()Returns the next pseudorandom, uniformly distributed |
| open Unit |
Sets or updates the seed of this random number generator using the provided |
| Protected methods | |
|---|---|
| open Int |
Generates the next pseudorandom number. |
| Inherited functions | |
|---|---|
Public constructors
Random
Random()
Creates a new random number generator. This constructor sets the seed of the random number generator to a value very likely to be distinct from any other invocation of this constructor.
Random
Random(seed: Long)
Creates a new random number generator using a single long seed. The seed is the initial value of the internal state of the pseudorandom number generator which is maintained by method next.
| Parameters | |
|---|---|
seed |
Long: the initial seed |
See Also
Public methods
doubles
open fun doubles(): DoubleStream!
Returns an effectively unlimited stream of pseudorandom double values, each between zero (inclusive) and one (exclusive).
A pseudorandom double value is generated as if it's the result of calling the method nextDouble().
| Return | |
|---|---|
DoubleStream! |
a stream of pseudorandom double values |
doubles
open fun doubles(
randomNumberOrigin: Double,
randomNumberBound: Double
): DoubleStream!
Returns an effectively unlimited stream of pseudorandom double values, each conforming to the given origin (inclusive) and bound (exclusive).
| Parameters | |
|---|---|
randomNumberOrigin |
Double: the origin (inclusive) of each random value |
randomNumberBound |
Double: the bound (exclusive) of each random value |
| Return | |
|---|---|
DoubleStream! |
a stream of pseudorandom double values, each with the given origin (inclusive) and bound (exclusive) |
| Exceptions | |
|---|---|
java.lang.IllegalArgumentException |
if randomNumberOrigin is not finite, or randomNumberBound is not finite, or randomNumberOrigin is greater than or equal to randomNumberBound |
doubles
open fun doubles(streamSize: Long): DoubleStream!
Returns a stream producing the given streamSize number of pseudorandom double values, each between zero (inclusive) and one (exclusive).
A pseudorandom double value is generated as if it's the result of calling the method nextDouble().
| Parameters | |
|---|---|
streamSize |
Long: the number of values to generate |
| Return | |
|---|---|
DoubleStream! |
a stream of double values |
| Exceptions | |
|---|---|
java.lang.IllegalArgumentException |
if streamSize is less than zero |
doubles
open fun doubles(
streamSize: Long,
randomNumberOrigin: Double,
randomNumberBound: Double
): DoubleStream!
Returns a stream producing the given streamSize number of pseudorandom double values, each conforming to the given origin (inclusive) and bound (exclusive).
| Parameters | |
|---|---|
streamSize |
Long: the number of values to generate |
randomNumberOrigin |
Double: the origin (inclusive) of each random value |
randomNumberBound |
Double: the bound (exclusive) of each random value |
| Return | |
|---|---|
DoubleStream! |
a stream of pseudorandom double values, each with the given origin (inclusive) and bound (exclusive) |
| Exceptions | |
|---|---|
java.lang.IllegalArgumentException |
if streamSize is less than zero, or randomNumberOrigin is not finite, or randomNumberBound is not finite, or randomNumberOrigin is greater than or equal to randomNumberBound |