欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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