MersenneTwister Class

Represents a pseudo-random number generator based on the Mersenne Twister algorithm.

Definition

Namespace: Numerics.NET.Random
Assembly: Numerics.NET (in Numerics.NET.dll) Version: 9.0.3
C#
[SerializableAttribute]
public sealed class MersenneTwister : Random32
Inheritance
Object  →  Random  →  ExtendedRandom  →  Random32  →  MersenneTwister

Remarks

Use the MersenneTwister class to represent a pseudo-this.random number generator that uses the Mersenne Twister algorithm of Takuji Nishimura and Makoto Matsumoto.

This generator has a very long period of 219937-1. This period is a Mersenne prime number (since 19937 is prime), whence its name. The algorithm is very fast and produces very good random sequences.

MersenneTwister can be used in place of the Random class to obtain pseudo-random numbers of a higher quality.

The Mersenne Twister is a linear random number generator. This makes it unsuitable for use in cryptography applications. To generate a cryptographically secure random number suitable for creating a random password, for example, use a class derived from RandomNumberGenerator such as RNGCryptoServiceProvider.

Constructors

MersenneTwister() Initializes a new instance of the MersenneTwister class using a time-dependent default seed value.
MersenneTwister(Int32) Initializes a new instance of the MersenneTwister class using the specified seed value.
MersenneTwister(Int32[]) Initializes a new instance of the MersenneTwister class using the specified seed array of seed values.

Methods

EqualsDetermines whether the specified object is equal to the current object.
(Inherited from Object)
GetHashCodeServes as the default hash function.
(Inherited from Object)
GetItems<T>(T[], Int32)Creates an array populated with items chosen at random from the provided set of choices.
(Inherited from Random)
GetItems<T>(ReadOnlySpan<T>, Int32)Creates an array populated with items chosen at random from the provided set of choices.
(Inherited from Random)
GetItems<T>(ReadOnlySpan<T>, Span<T>)Fills the elements of a specified span with items chosen at random from the provided set of choices.
(Inherited from Random)
GetItemsWithoutReplacement<T>(T[], Int32) Creates an array populated with items chosen at random from the provided set of choices without replacement.
(Inherited from ExtendedRandom)
GetItemsWithoutReplacement<T>(ReadOnlySpan<T>, Int32) Creates an array populated with items chosen at random from the provided set of choices without replacement.
(Inherited from ExtendedRandom)
GetItemsWithoutReplacement<T>(ReadOnlySpan<T>, Span<T>) Populates the specified span with items chosen at random from the provided set of choices without replacement.
(Inherited from ExtendedRandom)
GetTypeGets the Type of the current instance.
(Inherited from Object)
Next()Returns a non-negative random integer.
(Inherited from Random32)
Next(Int32)Returns a non-negative random integer that is less than the specified maximum.
(Inherited from Random32)
Next(Int32, Int32)Returns a random integer that is within a specified range.
(Inherited from Random32)
NextBytes(Byte[])Fills the elements of a specified array of bytes with random numbers.
(Inherited from ExtendedRandom)
NextBytes(Span<Byte>)Fills the elements of a specified span of bytes with random numbers.
(Inherited from Random32)
NextBytes(Byte[], Boolean) Fills the elements of a specified span of bytes with random numbers.
(Inherited from Random32)
NextBytes(Span<Byte>, Boolean) Fills the elements of a specified span of bytes with random numbers.
(Inherited from Random32)
NextDouble Returns a random number between 0 and 1.
(Inherited from Random32)
NextDouble32 Returns a random number between 0 and 1.
(Inherited from Random32)
NextInt64()Returns a non-negative random integer.
(Inherited from Random32)
NextInt64(Int64)Returns a non-negative random integer that is less than the specified maximum.
(Inherited from Random32)
NextInt64(Int64, Int64)Returns a random integer that is within a specified range.
(Inherited from Random32)
NextSingleReturns a random floating-point number that is greater than or equal to 0.0, and less than 1.0.
(Inherited from Random32)
NextUInt32 Returns an 32-bit unsigned random integer.
(Overrides Random32.NextUInt32())
Restart() Restarts the random number generator using the original seed.
(Overrides ExtendedRandom.Restart())
Restart(Int32) Restarts the random number generator using the specified seed.
(Overrides ExtendedRandom.Restart(Int32))
Restart(Int32[]) Restarts the random number generator using the specified seed array.
Shuffle<T>(T[])Performs an in-place shuffle of an array.
(Inherited from Random)
Shuffle<T>(Span<T>)Performs an in-place shuffle of a span.
(Inherited from Random)
ToStringReturns a string that represents the current object.
(Inherited from Object)

Extension Methods

AsParallel Returns a thread-safe version of this random number generator.
(Defined by RandomExtensions)
CorrelatedSamples Generates a series of random variables with the specified correlation matrix.
(Defined by RandomExtensions)
Fill Fills a Double array with random numbers.
(Defined by RandomExtensions)
Fill Fills an Int32 array with random numbers.
(Defined by RandomExtensions)
Fill Fills a Double array with random samples from the specified distribution.
(Defined by RandomExtensions)
Fill Fills an Int32 array with random samples from the specified distribution.
(Defined by RandomExtensions)
Fill Fills a vector with random samples from the specified distribution.
(Defined by RandomExtensions)
Fill Fills a vector with random samples from the specified distribution.
(Defined by RandomExtensions)
Fill Fills a Double array with random samples from the specified distribution.
(Defined by RandomExtensions)
Fill Fills a Double array with random numbers.
(Defined by RandomExtensions)
Fill Fills an Int32 array with random numbers.
(Defined by RandomExtensions)
Fill Fills an Int32 array with random samples from the specified distribution.
(Defined by RandomExtensions)
Fill Fills a Double array with random samples from the specified distribution.
(Defined by RandomExtensions)
Fill Fills an Int32 array with random samples from the specified distribution.
(Defined by RandomExtensions)
FillNormal Fills a list with normal random numbers with zero mean and unit standard deviation.
(Defined by RandomExtensions)
FillNormal Fills a list with normal random numbers with zero mean and unit standard deviation.
(Defined by RandomExtensions)
Next Returns a sample from the specified distribution.
(Defined by RandomExtensions)
NextDouble Returns a sample from the specified distribution.
(Defined by RandomExtensions)

See Also