双色球随机号生成程序

      最近买了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; } }

 

你可能感兴趣的:(双色球随机号生成程序)