简单的作了个买彩票选号的小程序,大家多指点建意!

bobor_2008 2008-09-09 06:29:09
public class SimulateLottery {

private List result = new ArrayList();

public SimulateLottery() {

}

public SimulateLottery(int totalNum, int gender) {
List list = setSize(totalNum);
result = setGenderNum(list, gender);
}

public List getResult() {
return result;
}

public List setSize(int n) {
List list = new ArrayList();
for (int i = 0; i < n; i++) {
list.add(i+1);
}
shuf(list);
return list;
}

public void shuf(List list) {
Collections cons = null;
cons.shuffle(list);
}

public List setGenderNum(List list, int n) {
List resultList = new ArrayList();
Integer result;
for (int i = 0; i < n; i++) {
int o = getNextNum(list);
result = (Integer) list.get(o);
list.remove(o);
resultList.add(result);
}
return resultList;
}

public int getNextNum(List list) {
int temp = 0;
Random ran = new Random();
int n = list.size() - 1;
ran.setSeed(System.currentTimeMillis());
temp = ran.nextInt() % n;
while (temp <= 0) {
temp = ran.nextInt() % n;
}
return temp;
}

public static void main(String[] args) {

SimulateLottery sl = new SimulateLottery(36, 9);
System.out.println(sl.getResult());

}

}
...全文
485 11 打赏 收藏 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobor_2008 2008-09-10
  • 打赏
  • 举报
回复
作这个从另一个角度想感觉没有什么意义.
对于大家买彩票来说也并非全有意义.
有些事并非非有意义才值得作.只要自己开心就行.
呵呵.

我自己瞎啰嗦了些什么.@_@
bobor_2008 2008-09-10
  • 打赏
  • 举报
回复
我还想把用图形化的形式把所运行的次数中出现每个数字的百分比显示出来.
bobor_2008 2008-09-10
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 easys2006 的回复:]
高手来调一下吧,哪天我中彩票就靠这个了!
[/Quote]

==============================================
千万不要靠这个,我作这个的目的:一,作着玩,没有那么多钱玩真的,就只好作一个模拟的了.
二,就是想让大家看一下中奖的概率太渺小了.
bobor_2008 2008-09-10
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 yewei2008 的回复:]
我觉得做2个文本框,更具灵活性。。
[/Quote]

==========================
我是快下班的时候没有事,就想起来了这个.就利用几分钟时间简单写了个.
我想有时间了再整理一下.好好重构一下.然后作成窗口形式的并可以在没有jre的机子上运行.

这也是有时间了才会重新完善一下.谢谢你的建议.
easys2006 2008-09-09
  • 打赏
  • 举报
回复
高手来调一下吧,哪天我中彩票就靠这个了!
风轻轻吹001 2008-09-09
  • 打赏
  • 举报
回复
我新手,调试了一下,还可以,纯支持了!!!!!
狂浪吻血 2008-09-09
  • 打赏
  • 举报
回复
我觉得做2个文本框,更具灵活性。。
bobor_2008 2008-09-09
  • 打赏
  • 举报
回复
时间关系就暂时只写了一个构造函数可以运行.
SimulateLottery sl = new SimulateLottery(36, 9);
有时间了再整理的有条理性些.
bobor_2008 2008-09-09
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 yewei2008 的回复:]
我觉得有点局限性,就是只能玩一种型号的,
如果要玩22选5,
或是32选7,都不可以

[/Quote]

 SimulateLottery sl = new SimulateLottery(22, 5);
System.out.println(sl.getResult());


===============================
这不就是你的要的效果吗.
几选几是可以变的参数.
只要改变构造函数中所传入的值就可以了.
bobor_2008 2008-09-09
  • 打赏
  • 举报
回复
这个我是用洗牌算法作的.也是自己在回家的路上路过一个彩票站,看一堆堆的人在买.
自己没有钱去玩真的就作一个模拟的试试.
public static void main(String[] args) {

for(int i=0;i<100;i++){
//SimulateLottery sl = new SimulateLottery(所选范围大小也即从1到这个数的大小数,要选择出的个数);
SimulateLottery sl = new SimulateLottery(36, 9);
System.out.println(sl.getResult());
}

}



================================
让它循环了100次,看了一下结果.感觉自己还是没有那必要玩真的了.
呵呵,开玩笑的.
狂浪吻血 2008-09-09
  • 打赏
  • 举报
回复
我觉得有点局限性,就是只能玩一种型号的,
如果要玩22选5,
或是32选7,都不可以

62,620

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧