您的位置:首页 > 其它

双色球随机号生成程序

2009-07-20 18:55 567 查看
最近买了2次彩票,都是让投注站给我随机一张。可惜的是第2次随机的号码一个都没对上。自己搞个随机的程序玩吧,以后就照这个程序,一次随机一个号码,来买。

import java.util.Random;

/**
* 用于生成双色球彩票号码的程序
*
* @author tommy
*
*/
public class LotteryGuess {

// 喜欢的蓝色球号码,如果这里不指定为"-1"以外的其它值,将会随机为蓝球赋值
private static int loveRedNumber = 6;

// 讨厌的红色球号码,这里的红色球号码将不会出现在所选的号码中
private static int[] hateRedNumbers = new int[] {};

// 想要得到的号码组数,默认就选一组号码,咱穷
private static int total = 1;

public static void main(String[] args) {
for (int i = 0; i < total; i++) {
int blueNumber = getBlueNumber();
int[] red = getRedNumbers();
System.out.println(red[0] + "  " + red[1] + "  " + red[2] + "  "
+ red[3] + "  " + red[4] + "  " + red[5] + "  +  "
+ blueNumber);
}
}

/**
* 生成6个红色球号码
*
* @return 6个红色球号码
*/
public static int[] getRedNumbers() {
int[] redNumber = new int[] { -1, -1, -1, -1, -1, -1 };
int redIndex = 0;
while (true) {
int number = getRandomNumber(33);
// System.out.println(number);

// 如果红球在不喜欢的列表中,则放弃
int hateFlag = -1;
for (int j = 0; j < hateRedNumbers.length; j++) {
if (number == hateRedNumbers[j]) {
hateFlag = 1;
}
}
if (hateFlag == 1) {
continue;
}

// 判断该红球是否已经被选中
int i;
for (i = 0; i < 6; i++) {
if (redNumber[i] == number) {
break;
}
}

// 红球未被选过,放入选择中
if (i == 6) {
redNumber[redIndex] = number;
redIndex++;
}

// 是否选择了6个红球了
if (redIndex == 6) {
break;
}
}

redNumber = sort(redNumber);
return redNumber;
}

/**
* 排序
* @param input
* @return
*/
public static int[] sort(int[] input) {
int temp = -1;
for (int i = 0; i < input.length; i++) {
for (int j = i; j < input.length; j++) {
if (input[j] < input[i]) {
temp = input[i];
input[i] = input[j];
input[j] = temp;
}
}
}
return input;
}

/**
* 生成蓝色球号码 原则:如果指定了蓝色球,返回指定的号码;否则返回一个随机的号码
*
* @return 蓝色球号码
*/
public static int getBlueNumber() {
if (loveRedNumber == -1) {
// 随机生成一个蓝色球号码
return getRandomNumber(16);
}
return loveRedNumber;
}

/**
* 生成一个1-maxN之间的随机数,包括1和maxN
*
* @return 1-maxN之间的随机数
*/
public static int getRandomNumber(int maxN) {
Random r = new Random();
int result = r.nextInt(maxN) + 1;
return result;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: