c#实现简易洗牌算法
程序员文章站
2022-03-26 20:59:47
实现思路:定义一个数组int[] poker = new int[54]存放54张牌,每次随机抽出2张牌交换(考虑相等的情况,可以抽出的是同一张牌),抽取次数足够多牌就洗的越散。 static void ShuffleCard() { //1.创建数组 int[] pokers = new int[54]; for (int i = 0; i < pokers.Length; i++) { ....
实现思路:定义一个数组int[] poker = new int[54]存放54张牌,每次随机抽出2张牌交换(考虑相等的情况,可以抽出的是同一张牌),抽取次数足够多牌就洗的越散。
static void ShuffleCard() {
//1.创建数组
int[] pokers = new int[54];
for (int i = 0; i < pokers.Length; i++)
{
pokers[i] = i;
}
//2:随机数更换两张
Random random = new Random();
for (int i = 0; i < 200; i++)
{
int v1 = random.Next(0,54);//左闭右开
int v2 = random.Next(0,54);//左闭右开
//3.交换两个数
int temp = pokers[v2];
pokers[v2] = pokers[v1];
pokers[v1] = temp;
}
foreach (var item in pokers)
{
Console.Write(item + " ");
}
}
本文地址:https://blog.csdn.net/qq_43282959/article/details/107574154