读书人

用数组写个洗牌的方法,该如何解决

发布时间: 2013-01-25 15:55:29 作者: rapoo

用数组,写个洗牌的方法
public class Card{
public static void main(String[] args) {
int[] p=new int[54];

for(int i=1;i<54;i++){

p[i]=i;

double b=Math.random()*50+1;

int c=(int)b;

if(c>=i){



int temp=p[i];

p[i]=p[p.length-1];

p[p.length-1]= temp;



}

System.out.println(p[i]);

}
}
}
怎样才能输不出来0
[解决办法]
我说的这个方法。。。已经非常简单了吧?

// 初始化牌盒
int[] p= new int[54];
// 初始化所有扑克
for(int i=0;i<54;i++) p[i] = i+1;
// 顺序洗牌
for(int i=0;i<54;i++) {
// 随机跟另一张牌交换
int r = (int)(Math.random()*54);
// 交换
int tmp = p[r];
p[r] = p[i];
p[i] = tmp;
}
// 至此完毕

读书人网 >J2ME开发

热点推荐