首页 > 后端开发 > C++ > 我应该使用 C# 中的 Fisher-Yates 算法洗牌多少次?

我应该使用 C# 中的 Fisher-Yates 算法洗牌多少次?

Patricia Arquette
发布: 2025-01-05 01:37:39
原创
937 人浏览过

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
作者最新文章
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板