洗牌算法
来源:互联网 发布:java httputils 编辑:程序博客网 时间:2024/06/09 12:36
用1到54代表54张牌,实现洗牌算法。
我的思路是使用一个顺序保存了这54个整数的list来代表原始牌堆,新建一个长度为54的数组array来保存打乱后的牌。
第一次取1-54中的一个随机数r1,然后将list中下标为r1的那项的值保存在array[0]中,再将list中下标为r1的那项remove。
第二次取1-53中的一个随机数r2,然后将list中下标为r2的那项的值保存在array[1]中,再将list中下标为r2的那项remove。
直到list为空。
用c写了个很短的程序弱弱的想是不是太短,然后发现如果用c#洗牌只需一句linq。。
static int n = 54;System.Random rm = new System.Random();list = (from i in list orderby rm.Next(1,n) descending select i).ToList();
原文作者:MaggieDorami
版权声明:文章原创,欢迎转载,转载时请务必加上原文超链接、作者信息和本声明。
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- 洗牌算法
- Lisp.集合
- PRJ:R-sql开发计划
- PC下串口IO空间及其寄存器详解
- Chrome源码剖析 【五】
- 电子通信类相关专业面试
- 洗牌算法
- hdu - 4309 - Seikimatsu Occult Tonneru - 网络流
- 通信工程专业课和毕业后的工作关系
- Android中Context
- 各大IT公司2012校园招聘笔试面试整理
- [C/C++]static关键字用法总结
- 自动关机命令
- 【转】实模式和保护模式
- 电子信息、通信、电类专业将会遇到的面试题大全