前段时间想买双色球中中五百万(五百万==房车老婆全有了),于是自己写了一个小程序玩玩,当买了几次后,国家突然把网彩给封杀了,挡我财路。。。。。
import java.util.Random;
/**
* 双色球随机出
*
* @author Bing
*
* 20150202
*
*/
public class DoubleColorBall {
public static void main(String[] args) {
Random random = new Random();
int[] result = getRandom(random);
System.out.println("开始下注:");
for(int num : result){
System.out.print(num+" ");
}
}
/**
* 得到七个数,
* 六个红球,一个蓝球
*
* 红球范围 1-33
*
* 蓝球范围 1-16
*
* @param random
* @return
*/
public static int[] getRandom(Random random){
//int n1 = (int) (Math.random()*75+25);
//存放红球1-33的数组
int[] array = new int[33];
//存放结果的数组,七位
int[] result = new int[7];
for(int i = 0;i<array.length;i++){
array[i]=i+1;
}
int n=0;
while(n<7){
if(n!=6){
result[n]= getRandomRed(random,result,array);
}else{
result[n] = random.nextInt(15)+1;
}
n++;
}
int total = 0;
for(int j = 0;j<6;j++){
total = total + result[j];
}
System.out.println("红球和值 :"+total);
//红球和值规则,如果不在,则再次进行选择七位
//此处使用了递归
if(total<=123&&total>=76){
return result;
}else{
result = getRandom(random);
}
return result;
}
/**
*
* 生成红球,并且红球的号不能有相同的
*
* @param random
* @param result
* @param array
* @return
*/
private static int getRandomRed(Random random, int[] result, int[] array) {
boolean flag = false;
int num = array[random.nextInt(32)];
for(int n: result){
if(n==num){
flag=true;
break;
}
}
//使生成的红球的号不相同
//此处使用了递归
if(flag){
num = getRandomRed(random, result, array);
}
return num;
}
}