随机数的使用
1.使用random类生成随机数
2.算法策略
- 将这一副扑克牌看成一组有序数组,洗牌就是将这组数组变成无序状态。
- 产生两个随机数,代表两个数的位置,交换这两个数的位置。
- 重复9999次。
import java.util.Random;
class Poker{
void show(String[] a){
for(int i=0; i<a.length; i++)
System.out.print(a[i]+" ");
System.out.println();
}
void ruffle(String[] x){
Random r =new Random();
for(int i=0;i<9999;i++){
int m =r.nextInt(54);
int n =r.nextInt(54);
String t=x[m];
x[m]=x[n];
x[n]=t;
}
}
}
class App {
public static void main(String args[])
{
Poker p =new Poker();
String[] x ={
"红桃A","红桃2","红桃3","红桃4","红桃5","红桃6","红桃7","红桃8","红桃9","红桃10","红桃J","红桃Q","红桃K",
"黑桃A","黑桃2","黑桃3","黑桃4","黑桃5","黑桃6","黑桃7","黑桃8","黑桃9","黑桃10","黑桃J","黑桃Q","黑桃K",
"梅花A","梅花2","梅花3","梅花4","梅花5","梅花6","梅花7","梅花8","梅花9","梅花10","梅花J","梅花Q","梅花K",
"方片A","方片2","方片3","方片4","方片5","方片6","方片7","方片8","方片9","方片10","方片J","方片Q","方片K",
"大王","小王"};
System.out.println("洗牌前:");
p.show(x);
p.ruffle(x);
System.out.println();
System.out.println("洗牌后:");
p.show(x);
}
}
运行结果: