`
XTU_xiaoxin
  • 浏览: 237392 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

双色球出奖器

J# 
阅读更多
   偶尔买彩票,由于数字太多,从而选择也太多,买了几次,自己选的数字一个没中,用机器随机选嘛,也中了几次,但都是小钱。身边人都说,买彩票要自己选,机选绝对有作假的嫌疑,不会让我中大奖的。呵呵!我的目标可是1000W,所以,决定自己来实行机选。今天闲着没事,写了个彩票随即抽奖程序,以后,开始了我的自己给自己随机选号之旅,先把代码贴下,大家也可以用哦,放心,开源的,呵呵!
 
package com.lottery;

import java.util.ArrayList;
import java.util.List;

/**
 * @description 彩票中奖程序,中奖率达90%
 * @author t j a
 *
 */
public class LotteryGenerator {

	/**
	 * 包含所有红球的数组
	 */
	private static final int[] ALL_RED_NUMBER = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33};
   /**
    * 包含所有蓝球的数组
    */
	private static final int[] ALL_BLUE_NUMBER = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};
	/**
	 * 数字之间分隔符
	 */
	private static final String SPLIT = " ";
	/**
	 * 数组池(存放已抽出来的数字)
	 */
	private static List<Integer> numPool = new ArrayList<Integer>();
		
	/**
	 * 生成所有的中奖号码
	 */
	public static void generateWinLotteryNum() {
		System.out.println("6个红球号码分别是:"+printStrArr(generateNumber(6,ALL_RED_NUMBER)));
		System.out.println("1个蓝球号码分别是:"+generateNumber(1,ALL_BLUE_NUMBER));
	}
	
	/**
	 * @description 生成指定长度(length)的随即中奖号码
	 * @param length
	 * @return
	 */
	private static String generateNumber(int length,int[] numberArr) {
		if(length<=0)  length = 1;
		StringBuffer  sb = new StringBuffer();
		for(int i = 0;i<length;i++) {
			int pos = (int)(Math.random()*numberArr.length);
			if(isInNumPool(numberArr[pos])) {
				i--;
				continue;
			}
			numPool.add(numberArr[pos]);
			sb.append(numberArr[pos]);
			sb.append(SPLIT);
		}
		numPool.clear(); //清空数字池
		return sb.toString();
	}
	
	/**
	 * @description 判断生成的数字是否已经在数字池里了(判断数字是否已经存在了)
	 * @param number
	 * @return
	 */
	private static boolean isInNumPool(int number) {
		if(numPool.contains(number)) {
			return true;
		} else {
			return false;
		}
	}
	
	/**
	 * @description 对纯数字字符串进行排序(选择排序)
	 * @param strArr 字符串数字,以" "作为分割符
	 * @return
	 */
	private static String[] sort(String _sortStr) {
		String[] strArr = _sortStr.split(SPLIT);
		String tempStr;
		for(int i = 0;i<strArr.length;i++) {
			String minStr = strArr[i];
			for(int j = i+1;j<strArr.length;j++) {
				if(Integer.parseInt(strArr[j])<Integer.parseInt(minStr)) {
					tempStr = minStr;
					minStr = strArr[j];
					strArr[j] = tempStr;
				}
				strArr[i] = minStr;
			}
		}
		return strArr;
	}
	
	/**
	 * @description 输出排了序的字符串
	 * @param _sortStr
	 * @return
	 */
	private static String printStrArr(String _sortStr) {
		String[] strArr = sort(_sortStr);
		StringBuffer sb = new StringBuffer();
		for(String str:strArr){
			sb.append(str);
			sb.append(SPLIT);
		}
		return sb.toString();
	}
	
	public static void main(String[] args) {
		LotteryGenerator.generateWinLotteryNum();
		System.out.println("哎呀,去买吧,不中砸死我!");
	}

}

2
0
分享到:
评论
1 楼 xiaoyanzi1205 2010-04-07  
   哈哈,太有才了

相关推荐

Global site tag (gtag.js) - Google Analytics