浏览 8028 次
锁定老帖子 主题:双色球算号器
精华帖 (3) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-02-06
最后修改:2009-02-20
package com.tester.luckly; import java.util.Random; import java.util.Scanner; import java.util.Set; import java.util.TreeSet; public class DoubleBall { private Set<Integer> hs; private static boolean flag = true; public enum oddOrEven { Odd, Even } public enum aOrBOrC { A, B, C } public static void main(String[] args) { DoubleBall db = new DoubleBall(); System.out .println("====================Red Balls============================"); String url1 = "http://map.zhcw.com/ssq//html/h7fenqu_ascstr=20.html"; System.out.println(); System.err.println(url1); Scanner scanner1 = new Scanner(System.in); System.out.println("Please select:1.Input your own two numbers"); System.out .println(" 2.Input the range of the two numbers"); int select = scanner1.nextInt(); if (select == 1) { flag = false; } else { flag = true; } System.out.println("Please input two numbers like this: 1 2"); scanner1.nextLine(); String[] str = scanner1.nextLine().split(" "); Set<Integer> redBall = db.calcRedBall(Integer.parseInt(str[0]), Integer .parseInt(str[1])); System.out .println("====================Blue Ball============================"); String url2 = "http://sports.sohu.com/s2007/0445/s252476794/"; System.out.println(); System.err.println(url2); Scanner scanner2 = new Scanner(System.in); System.out.println("1.Please select:" + oddOrEven.Odd + " or " + oddOrEven.Even); String select1 = scanner2.nextLine(); System.out.println("2.Please select:" + aOrBOrC.A + " or " + aOrBOrC.B + " or " + aOrBOrC.C); String select2 = scanner2.nextLine(); int blueBall = db.calcBlueBall(select1, select2); System.out .println("====================The Result============================"); System.out.println(); for (int i : redBall) { System.err.print(i + " "); } System.err.println("| " + blueBall); String url3 = "http://www.bwlc.net/dhtz/"; System.err.println(url3); } public Set<Integer> calcRedBall(int begin, int end) { hs = new TreeSet<Integer>(); /* * 固定恒码:就是每期都必备的号码,通常为2-3个,如02,13,27。 这2-3个号码长期备选(至少50期)。 */ hs.add(10); hs.add(27); /* * 边缘捡“胆”:就是在边缘码“05、10、15、20、25、30”及“01、 * 06、11、16、21、26、31”共13个号码中巧妙地捡出胆码。之所以 把边缘码作为“胆”码的一种选取方法,是因为从历史中奖号码来看, * 几乎每一期都会在具备这种特性的号码中出现2-3个。 */ int[] array = { 5, 15, 20, 25, 30, 01, 06, 11, 16, 21, 26, 31 }; for (int i = 0; i < 2; i++) { Random random = new Random(); hs.add(array[random.nextInt(array.length)]); } /* * 重码追邻:在上上期出号的左右选取的上期号码,这话不好理解,现举例说明:双色球2007109期开01 04 07 08 13 14; * 110期开02 04 07 15 24 28;其中这期的04 * 07,刚好是109期二、三位的重码,那么111期的重码该选取哪个呢?重码追邻就是在110期的04 07 的左右选取,110期04 07 * 的左右是02 15。所以111期的备选号就是02 15 了。实际上111期重码刚好开的是02。重码追邻一般选取2-3个号码。 */ /* ========= 或者========= */ /* 旺区落“胆”。就是在最近几期热号区选择胆码。比如,如果最近的5期内,在中区12~22出号比较密集,那么就要在这个区域里选取3个胆码。这样选择的理由是热码恒热原理,即号码总是在某个区域相对集中出现。 */ if (flag == true) { hs.add(begin); hs.add(end); } else { Random random = new Random(); hs.add(begin + random.nextInt(end - begin + 1)); } /* Luck number! */ while (hs.size() < 6) { Random random = new Random(); hs.add(1 + random.nextInt(33)); } return hs; } public int calcBlueBall(String select1, String select2) { int begin = 1; int end = 16; if (select2.equals(aOrBOrC.A.toString())) { begin = 1; end = 5; } else if (select2.equals(aOrBOrC.B.toString())) { begin = 6; end = 10; } else { begin = 11; end = 16; } Random random = new Random(); int blueBall = begin + random.nextInt(end - begin + 1); if (select1.equals(oddOrEven.Odd.toString())) { while (blueBall % 2 == 0) { blueBall = begin + random.nextInt(end - begin + 1); } } else { while (blueBall % 2 == 1) { blueBall = begin + random.nextInt(end - begin + 1); } } return blueBall; } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2009-02-06
汗。。。这也可以
不过不错,如果我买彩票的话,很适合我这种不知道选什么号码的懒人 |
|
返回顶楼 | |
发表时间:2009-02-06
上期的数据是哪来的啊 自己去网站上找的吗
昨天第一次买 还没开奖呢 |
|
返回顶楼 | |
发表时间:2009-02-06
花了点功夫,这些数据是怎么获取的?
|
|
返回顶楼 | |
发表时间:2009-02-06
A,B,C是啥意思啊?
|
|
返回顶楼 | |
发表时间:2009-02-06
不错,有个界面好一点.
|
|
返回顶楼 | |
发表时间:2009-02-09
木雨青青 写道 花了点功夫,这些数据是怎么获取的? 数据是从println中的url连接中自己看 microjuz 写道 A,B,C是啥意思啊? A,B,C是说蓝球出现所在的区域,1-5为A区,6-10为B区,11-16为C区,都是一些彩民的术语。详细的可以看代码中url |
|
返回顶楼 | |
发表时间:2009-02-25
蛮好玩的。我已经用这个算了号码。就是对规则不是很了解,随便选了两个数字。哈哈
3 5 10 25 27 31 | 16 要是中了奖,请你吃棒冰。。。。 |
|
返回顶楼 | |