同時建立具有不同種子的多個隨機類
同時建立的兩個 Random 類將具有相同的種子值。
使用 System.Guid.NewGuid().GetHashCode()
即使在同一時間也可以獲得不同的種子。
Random rnd1 = new Random();
Random rnd2 = new Random();
Console.WriteLine("First 5 random number in rnd1");
for (int i = 0; i < 5; i++)
Console.WriteLine(rnd1.Next());
Console.WriteLine("First 5 random number in rnd2");
for (int i = 0; i < 5; i++)
Console.WriteLine(rnd2.Next());
rnd1 = new Random(Guid.NewGuid().GetHashCode());
rnd2 = new Random(Guid.NewGuid().GetHashCode());
Console.WriteLine("First 5 random number in rnd1 using Guid");
for (int i = 0; i < 5; i++)
Console.WriteLine(rnd1.Next());
Console.WriteLine("First 5 random number in rnd2 using Guid");
for (int i = 0; i < 5; i++)
Console.WriteLine(rnd2.Next());
實現不同種子的另一種方法是使用另一個 Random
例項來檢索種子值。
Random rndSeeds = new Random();
Random rnd1 = new Random(rndSeeds.Next());
Random rnd2 = new Random(rndSeeds.Next());
這也可以通過僅設定 rndSeeds
的種子值來控制所有 Random
例項的結果。所有其他例項將從該單個種子值確定性地匯出。