zoukankan      html  css  js  c++  java
  • 记录洗牌算法

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace ConsoleApplication1
    {
        class Program
        {
            static void Main(string[] args)
            {
                List<int> arrbase=new List<int>(54);
                List<int> arrresult = new List<int>(54);
                //1初始化牌
                for (int i = 0; i < 54; i++)
                {
                    arrbase.Add(i + 1);
                    arrresult.Add(0);
                    Console.WriteLine("将"+(i+1)+"放在"+i+"位置");
                }
                Console.WriteLine("初始化完毕");
    
                //2.随机抽一张牌,放入B数据
                Random r=new Random();
                var count = arrbase.Count;
                for (int i = 0; i < 54; i++)
                {
                    var index = r.Next(0, count);//随机确定想要抽牌的位置
                    var tem = arrbase[index];//取出该位置上面的牌
                    arrresult[i] = tem;//将该牌放置在牌堆B中.从前向后依次放置
                    Console.WriteLine("将{0}放在了牌组B的{1}位置", tem, i);
                    if (index != count-1) //从牌堆A随机取的不是牌堆A的最后一张
                    {
                        //将最后一个牌给 index位置
                        arrbase[index] = arrbase[count - 1];
                    }
                    //移除牌堆A的最后一个元素 因为这里还要用 所以直接就用count-1代替了
                    count = count - 1;
                }
                if (arrresult.Distinct().Count()==54)//数据去重之后还是和以前大小一样,说明所有牌都移过来了
                {
                    Console.WriteLine("清洗之后的牌局:");
                    foreach (var i in arrresult)
                    {
                        Console.WriteLine(i);
                    }
                }
                else
                {
                    Console.WriteLine("出错了!");
                }
                Console.ReadKey();
            }
        }
    }
    

      

  • 相关阅读:
    新單詞
    custom preview link
    注冊碼
    准备用VB.Net 写一个律师管理的系统
    Windows服務
    下一步
    失败
    如何在篩選聯絡人時控制只能篩選上層客戶的聯絡人.
    如何取Lookup欄位的值
    Dynamic Picklist Sample
  • 原文地址:https://www.cnblogs.com/ruhuaxiao/p/5264598.html
Copyright © 2011-2022 走看看