ホームページ > バックエンド開発 > C++ > C# で 6 つの一意の乱数を生成するには?

C# で 6 つの一意の乱数を生成するには?

DDD
リリース: 2025-01-12 13:37:46
オリジナル
889 人が閲覧しました

How to Generate Six Unique Random Numbers in C#?

重複を避ける: C# 乱数ジェネレーター

あなたのコードは、1 から 49 までの 6 つの乱数を生成するように設計されています。ただし、これらの番号には重複が含まれる可能性があり、宝くじのようなシナリオではこれは受け入れられません。この問題を解決するために、C# で一意の乱数を生成する効率的な方法を検討します。

解決策:

生成された数値をコレクションに保存します。新しい番号が生成されるたびに、その番号がセット内にすでに存在するかどうかを確認します。存在する場合は、一意の番号が見つかるまで別の番号の生成を続けます。

このソリューションを実装するコードの修正バージョンは次のとおりです:

<code class="language-csharp">var randomNumbers = new List<int>();
var random = new Random();

while (randomNumbers.Count < 6)
{
    int randomNumber = random.Next(1, 50); // 生成1到49之间的随机数
    if (!randomNumbers.Contains(randomNumber))
    {
        randomNumbers.Add(randomNumber);
    }
}</code>
ログイン後にコピー

あるいは、次の戦略を採用することもできます:

デッキをシャッフルし、方法を選択します:

  1. 1 から 49 までの一連の数字を作成します。
  2. ランダム関数を使用してシーケンスをシャッフルします。
  3. シャッフルされたシーケンスから最初の 6 つの数字を選択します。

このアプローチのコードは次のとおりです:

<code class="language-csharp">var rnd = new Random();
var randomNumbers = Enumerable.Range(1, 49).OrderBy(x => rnd.Next()).Take(6).ToList();</code>
ログイン後にコピー

このアプローチでは、カスタム ループや追加の重複チェックを必要とせずに、一意の乱数の生成が保証されます。

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

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート