8 private const int MBIG =
int.MaxValue;
10 private const int MSEED = 161803398;
12 private const int MZ = 0;
32 for (
int i = 0; i <
SeedArray.Length; i++)
36 int num = ((Seed ==
int.MinValue) ?
int.MaxValue :
Math.
Abs(Seed));
37 int num2 = 161803398 - num;
40 for (
int j = 1; j < 55; j++)
42 int num4 = 21 * j % 55;
51 for (
int k = 1; k < 5; k++)
53 for (
int l = 1; l < 56; l++)
84 if (num3 ==
int.MaxValue)
110 return ((
double)num + 2147483646.0) / 4294967293.0;
113 public virtual int Next(
int minValue,
int maxValue)
115 if (minValue > maxValue)
119 long num = (long)maxValue - (
long)minValue;
120 if (num <=
int.MaxValue)
122 return (
int)(
Sample() * (double)num) + minValue;
127 public virtual int Next(
int maxValue)
133 return (
int)(
Sample() * (double)maxValue);
147 for (
int i = 0; i <
buffer.Length; i++)
static double Abs(double value)
virtual void NextBytes(byte[] buffer)
virtual int Next(int minValue, int maxValue)
double GetSampleForLargeRange()
virtual double NextDouble()
virtual int Next(int maxValue)