0
私は遅れたフィボナッチ生成器を実装しようとしていますが、廃棄戦略を使用しています。破棄戦略を使用した遅れたフィボナッチ生成器
ステップ1:あなたのRNG
ステップ2から生成された次の127個の数字から乱数を返します:私は従って、これらのガイドラインを持っているあなたのRNGから生成された次の997の番号を破棄
ステップ3:後藤ステップ1.
「int randomNumber = array [Next(127)];」セクションの範囲外の配列に関してエラーが発生することがあるという問題が発生することがあります。
初期値は:ここ
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;
}
}
と数生成器:
public int Next(int maxValue)
{
for (int i = 0; i < array.Length; i++)
{
array[i] = rand.Next(maxValue);
}
int firstElement = array[n - j];
int secondElement = array[n - k];
randomNumber = (firstElement + secondElement) % Math.Pow(m, 32);
array[n] = (int)randomNumber;
return (int)randomNumber % (maxValue + 1);
}
あなたは何をすることをお勧めしますか? –
真剣に? 0〜126の値が必要です。 'Next(n)'は、0と* n *の間の値を返します。 –
申し訳ありませんが、私は長い間理解していました。しかし、それは動作します! –