これは非常に論理的な説明があるかもしれませんが、なぜシード0
と2,147,483,647
が.NETのRandom Class (System) 。同じ「ランダム」シーケンスを生成する2つの異なるシード
クイックコード例:
var random1 = new Random(0);
var random2 = new Random(1);
var random3 = new Random(int.MaxValue); //2,147,483,647
var buffer1 = new byte[8];
var buffer2 = new byte[8];
var buffer3 = new byte[8];
random1.NextBytes(buffer1);
random2.NextBytes(buffer2);
random3.NextBytes(buffer3);
for (int i = 0; i < 8; i++)
{
Console.WriteLine("{0}\t\t{1}\t\t{2}", buffer1[i], buffer2[i], buffer3[i]);
}
出力:あなたが見ることができるように
26 70 26
12 208 12
70 134 76
111 130 111
93 64 93
117 151 115
228 228 228
216 163 216
、第一及び第3のシーケンスが同じです。誰かがこれを私に説明してもらえますか?
EDIT:明らかに、これらの配列は同じではないことが指摘されています。しかし、彼らは非常に似ています。
他の任意の数字を試してみましたか?そうであれば、その数字で同じ結果が得られますか? –
'System.Random'は多くの点でデザインごとに壊れています。これはその一つです。 – CodesInChaos
+1非常に興味深い観察のために! – quetzalcoatl