我正在尝试实施Lagged Fibonacci生成器,但使用丢弃策略。我有以下指导原则:
步骤1:从RNG生成的后续127个数字中返回随机数
步骤2:丢弃从RNG生成的下一个997号码
第3步:转到第1步。
问题是有时候生成的值是关于数组超出界限的错误,而且随后的数字越来越多了[int] randomNumber = array [Next(127)];'
初始值为:
hoInProcessAuth
以下是放弃方法的代码:
Random rand = new Random();
int[] array = new int[6000];
int j = 83;
static int k = 258;
int m = 2;
int n = k;
double randomNumber = 0;
和数字生成器:
public int NextUsingDiscarding(int maxValue)
{
try
{
int[] array = new int[127];
for (int i = 0; i < array.Length - 1; i++)
{
array[i] = Next(maxValue);
}
int randomNumber = array[Next(127)];
for (int i = 0; i < 127 + 997; i++)
{
Next(maxValue);
}
return randomNumber;
}
catch
{
return -1;
}
}
答案 0 :(得分:0)
Next
返回0到maxvalue
之间的值,这里调用的值是127.但是你的数组的索引在0到126之间。