Może jest to bardzo logiczny wytłumaczenie dla tego, ale ja po prostu nie potrafię zrozumieć, dlaczego nasiona 0
i 2,147,483,647
wytwarzają taką samą sekwencję „Random”, przy użyciu .NET na Random Class (System) .Dwa różne nasiona produkujące ten sam „” losową sekwencję
Krótki przykład kodu:
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]);
}
wyjściowa:
26 70 26
12 208 12
70 134 76
111 130 111
93 64 93
117 151 115
228 228 228
216 163 216
Jak widać, pierwszy i trzeci ciąg są takie same. Czy ktoś może mi to wyjaśnić?
EDIT: Najwyraźniej, jak wspomniano, te sekwencje nie są takie same. Ale są bardzo podobne.
Czy wypróbowałeś inny arbitralny numer, a jeśli tak, to czy uzyskujesz te same wyniki z tym numerem? –
'System.Random' jest rozbity po projekcie na wiele sposobów. To jedna z nich. – CodesInChaos
+1 za bardzo interesującą obserwację! – quetzalcoatl