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

C# で非反復乱数を生成するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-21 13:11:10847ブラウズ

How to Generate Non-Repeating Random Numbers in C#?

C# で一意の乱数を生成する

ランダムで一意の数値を生成する必要があるアプリケーションの開発では、開発者は System.Random クラスに関する問題に遭遇することがよくあります。 DateTime.Now.Ticks をシードとして使用した場合でも、重複する数値が存在する可能性があります。

重複値の問題を解決する

System.Random.Next() 自体は、生成された数値の一意性を保証しません。より狭い範囲 (0 ~ 10 など) と組み合わせると、重複する値が発生する確率が高くなります。

代替: リストのメンテナンス

この制限を克服するためのより堅牢なアプローチは、生成された数値のリストを維持することです。重複は、潜在的な番号がリストにすでに存在するかどうかを確認することで回避できます。

以下は、この戦略を使用して変更された実装です:

<code class="language-csharp">public Random a = new Random();
public 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>

このアプローチでは、生成された数値のリストを維持し、重複を除外することで、真に一意の値を確実に作成できます。

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

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