.net / c#の標準(?)ランダムジェネレーターを意味します
Random random = new Random(seed);
random.next();
文献には数十または数百の方法があることは知っていますが、.netフレームワークが現在使用している方法を見つけることができませんか?
質問をする理由:確率変数をたくさん描いた場合、同じシーケンスに戻ることはありますか?一部のRNGにはこの望ましくない特性があることを私は知っています。
疑似乱数は、有限の数のセットから等しい確率で選択されます。選択された数は、明確な数学的アルゴリズムを使用して選択されるため、完全にランダムではありませんが、実用的な目的には十分にランダムです。Randomクラスの現在の実装は、DonaldE.Knuthの減算乱数ジェネレーターアルゴリズムの修正バージョンに基づいています。詳細については、DEKnuthを参照してください。「TheArtofComputer Programming、volume 2:SeminumericalAlgorithms」。アディソン-ウェスリー、レディング、マサチューセッツ州、第2版、1981年。
すべての計算はシードに基づいています。シードを定義すると、同じシーケンスのメソッドに対して同じ結果が得られます。そうでない場合、デフォルトのシードはEnvironment.TickCountであるため、同じシーケンスのメソッドは、実行ごとに異なる結果を生成します(並行して保証されるわけではありません)。