简单的双色球生成方法

来源:互联网 发布:未来网络发展趋势 编辑:程序博客网 时间:2024/05/21 09:37

1.首先双色球有6个红球和一个篮球组成,6个红球是1-32的六个随机数且不重复,篮球为1-16的一个随机数,和红球没有关系,可以和红球有重复。好啦

代码开始

方法一:

public static void getBall01() {

//得到一个生成随机数的对象
Random random = new Random();

//这里用到TreeSet,可以去除重复,可以排序
Set<Integer> set = new TreeSet<>();

//得到六个不重复的红球
while (set.size() != 6) {
set.add(random.nextInt(32) + 1);
}
System.out.print("红球为:    ");
for (Integer integer : set) {
System.out.print(integer + "  ");
}
int blue = random.nextInt(16) + 1;
System.out.println("篮球为:   " + blue);
}

还有好多种方法,自己感觉上面这个方法比价简单易懂。

方法二: public static void getBall02(){
Random rd = new Random();
int []ball = new int[7];
for (int k = 0; k < 10; k++) {
//生成一个蓝球
int blueBall = rd.nextInt(16) + 1;
ball[6] = blueBall;
for (int i = 0; i < ball.length - 1;) { // for(;;){}
int redBall = rd.nextInt(33) + 1;
boolean isHas = false; //表示红球是否已存在
//判断此红球是否已存在
for (int j = 0; j < i; j++) {
if (redBall == ball[j]) {
isHas = true;
break;
}
}
//if(isHas==false){
if (!isHas) {  //不存在,则添加到数组中
ball[i] = redBall;
i++;
}
}
//输出双色球
System.out.print("双色球的值为:");
for (int i = 0; i < ball.length; i++) {
System.out.print(ball[i] + "\t");
}
System.out.println();
}
}

方法三:更繁琐了

1:先写一个判断数组里是否有重复数字的方法

public static boolean PanDuan(int[] a) {
// 设置监控点
boolean flag = false;
for (int i = 0; i < a.length; i++) {
int temp = a[i];
int count = 0;
for (int j = 0; j < a.length; j++) {
int temp2 = a[j];
if (temp == temp2) {
count++;
}
}
// 一个一个比较,会出现同一个数比较两次,
if (count >= 2) {
flag = true;
}
}
return flag;
}

2:然后生成双色球

public static void getBall03() {
Random random = new Random();


// System.out.println(numRed);
// 生成篮球随机数
int numBulue = random.nextInt(16) + 1;
// int count = 0;
int[] arrRed = new int[6];
int[] all = new int[7];
all[6] = numBulue;
// 设置监控点
boolean isChongfu;
do {
for (int i = 0; i < 6; i++) {
// 生成红球随机数
int numRed = random.nextInt(33) + 1;
arrRed[i] = numRed;
// System.out.print(numRed + "\t");
}
//判断是否有重复的数字
isChongfu = PanDuan(arrRed);
//如果有重复数字则继续循环,没有则isChongfu变为false,结束循环
} while (isChongfu);
//生成无重复数组后,排序
Arrays.sort(arrRed);
//把红球添加进双色球数组内
for (int i = 0; i < arrRed.length; i++) {
all[i] = arrRed[i];
System.out.print(arrRed[i] + "\t");
}
System.out.println();
//输出双色球
System.out.println("双色球为");
for (int i : all) {
System.out.print(i + "\t");
}
}