使用丢弃策略的滞后Fibonacci生成器

时间:2016-05-24 18:33:12

标签: c# algorithm random shuffle

我正在尝试实施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;
    }
}

1 个答案:

答案 0 :(得分:0)

Next返回0到maxvalue之间的值,这里调用的值是127.但是你的数组的索引在0到126之间。