ホームページ > バックエンド開発 > C++ > C# の Fisher-Yates アルゴリズムを使用してデッキを何回シャッフルする必要がありますか?

C# の Fisher-Yates アルゴリズムを使用してデッキを何回シャッフルする必要がありますか?

Patricia Arquette
リリース: 2025-01-05 01:37:39
オリジナル
926 人が閲覧しました

How Many Times Should I Shuffle My Deck Using the Fisher-Yates Algorithm in C#?

C# でのカード シャッフル

C# では、Fisher-Yates シャッフルを使用してカード シャッフル アルゴリズムを実装できます。ユーザー入力に基づいてデッキをシャッフルするようにコードを拡張する方法は次のとおりです。

Program.cs に次のロジックを追加します。

int timesToShuffle;
Console.WriteLine("How many times do you want to shuffle?");
timesToShuffle = Convert.ToInt32(Console.ReadLine());
for (int i = 0; i < timesToShuffle; i++)
{
    FisherYates.Shuffle(mydeck.Cards);
}
ログイン後にコピー

このコードは、目的のユーザー入力を取得します。シャッフルの回数を指定してから、フィッシャー・イェーツのシャッフル アルゴリズムをデッキの Cards 配列に複数回適用します。

FisherYates クラスでは、次のメソッドを実装します。

public static void Shuffle(int[] deck)
{
    for (int n = deck.Length - 1; n > 0; --n)
    {
        int k = r.Next(n + 1);
        int temp = deck[n];
        deck[n] = deck[k];
        deck[k] = temp;
    }
}
ログイン後にコピー

このメソッドは、カードのデッキを表す整数の配列を受け取り、フィッシャー・イェーツのシャッフル アルゴリズムを適用して順序をランダム化します。

シャッフルが完了したら, 最初に行ったように mydeck.Cards を反復処理することで、シャッフルされたカードをリストできます。指定された回数に基づいてカードがシャッフルされます。

以上がC# の Fisher-Yates アルゴリズムを使用してデッキを何回シャッフルする必要がありますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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