/ /高速乱数生成 - 複数回/ ms [重複] - c#、ランダム、ミリ秒

高速乱数生成 - 複数回/ ms [重複] - c#、ランダム、ミリ秒

私は気づいた、使用するとき 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