首頁 > 後端開發 > C++ > 我應該使用 C# 中的 Fisher-Yates 演算法洗牌多少次?

我應該使用 C# 中的 Fisher-Yates 演算法洗牌多少次?

Patricia Arquette
發布: 2025-01-05 01:37:39
原創
906 人瀏覽過

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

C# 中的洗牌

在 C# 中,您可以使用 Fisher-Yates shuffle 實現洗牌演算法。以下是如何增強程式碼以根據使用者輸入洗牌:

在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);
}
登入後複製

此程式碼擷取所需的使用者輸入洗牌次數,然後將Fisher-Yates 洗牌演算法多次套用於牌組的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;
    }
}
登入後複製

此方法採用代表一副牌的整數數組,並應用 Fisher-Yates 洗牌演算法來隨機化其順序。

洗牌完成後,您可以像最初一樣透過迭代 mydeck.Cards 來列出洗過的牌。現在將依照指定的次數洗牌。

以上是我應該使用 C# 中的 Fisher-Yates 演算法洗牌多少次?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板