Random クラスをシードすることでランダム値の重複を避ける
ここで説明されている問題は、Random クラスによって生成された乱数値が真のランダムではないということです。ループ内で重複した番号が生成されることになります。これは、乱数生成器 (RNG) がシード値を使用して数値を生成するために発生します。毎回同じシードが使用されると、同じ一連の数値が生成されてしまいます。
この問題を解決するには、次のようにします。毎回異なる値を RNG にシードするために不可欠です。これにより、乱数のシーケンスが真にランダムであり、予測不可能であることが保証されます。
RNG をシードする効果的な方法の 1 つは、ランダムに生成された GUID (グローバル一意識別子) のハッシュ コードを使用することです。このアプローチでは、GUID の固有のランダム性により、非常にランダムなシード値が生成されます。
以下は、この手法を示すサンプル コードです。
Random rand = new Random(Guid.NewGuid().GetHashCode());
このシード メソッドを実装すると、次のような問題を回避できます。ランダムな値を複製し、アプリケーションにとって真に予測不可能な一連の数値を取得します。
以上がC# で乱数の重複を避けるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。