//生成一幅牌,编号为0-53
int poker[] = new int[54];
for(int i = 0;i < poker.length;i++){
poker[i] = i;
}
//洗牌
Random r = new Random();
int times = 54; //两两交换次数
int ranIndex; //随机下标
int temp; //交换数字
int cIndex; //当前下标
for(int i = 0;i < times;i++){
ranIndex = r.nextInt(54); //[0-53]之间的随机数
//和下标i % 54交换
cIndex = i % 54;
if(cIndex != ranIndex){
temp = poker[cIndex];
poker[cIndex] = poker[ranIndex];
poker[ranIndex] = temp;
}
}
点评:在该代码中,利用前面介绍的算法首先生成一个包含[0,53]之间所有整数的规则数组poker,然后再使用两两交换的方式对于该数组中的元素交换54次,这个次数可以根据需要进行调整,从而得到了一个符合逻辑要求的数组poker。
本文来自优快云博客,转载请标明出处:http://blog.youkuaiyun.com/taobao755624068/archive/2010/08/16/5816315.aspx