私は気づいた、使用するとき System.Random、if Next()
ミリ秒で複数回呼び出された場合、同じ番号を返します(同じパラメータを持つ場合)。私は、ランダムアルゴリズムが何とかシステムの時間に関係し、それに依存していると仮定します。
私は電話したい Next()
1ミリ秒の中で何度も何度も同じことをやっている - うまくいけば同じRandomクラスでやる?そうでない場合、私はこれを解決するためのあらゆるリソース/他の方法を感謝します。
回答:
回答№1は6これは、新しいインスタンスを初期化すると Random
シードにシステムクロックを使用します。これを2回、十分に閉じると、同じシードを使用することになり、2つのインスタンスから同じ乱数シーケンスを取得します。
すでにコメントの中で言及されている解決法は、 Random
それから、Next()を繰り返し呼び出すと、毎回新しい乱数が得られます。
var val1 = new Random().Next();
var val2 = new Random().Next(); // quite likely val1 and val2 will be the same
var rnd = new Random();
var val3 = rnd.Next();
var val4 = rnd.Next(); // very unlikely val3 and val4 will be the same