ホームページ >バックエンド開発 >C++ >C# で一意の乱数を生成するにはどうすればよいですか?

C# で一意の乱数を生成するにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-21 13:21:10192ブラウズ

How Can I Generate Unique Random Numbers in C#?

C# での一意の乱数の生成

質問:

C# 開発者は、一意の乱数を生成するという課題に直面することがよくあります。 System.Random と DateTime.Now.Ticks をシードとして使用する場合でも、数値の重複に関する問題が発生する可能性があります。この問題を解決する別の方法を提案してもらえますか?

答え:

Random.Next は一意性を保証しませんが、簡単な解決策は、生成された数値のリストを維持することです。以下のアルゴリズムは、これを実現する方法を示しています:

<code class="language-csharp">public Random a = new Random();
private List<int> randomList = new List<int>();
int MyNumber = 0;

private void NewNumber()
{
    MyNumber = a.Next(0, 10);
    if (!randomList.Contains(MyNumber))
        randomList.Add(MyNumber);
}</code>

このコードは、Random インスタンス (デフォルトで内部で行われるため、GetHashCode 呼び出しは必要ありません) と、生成された数値を保存するリストを初期化します。 NewNumber 関数は、0 から 9 までの乱数を生成します。数値がリストにない場合はリストに追加され、指定された範囲内で数値の一意性が保証されます。

以上がC# で一意の乱数を生成するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。