求java大神们能帮我解决下双色球大神的问题么我需要用java做个双色球大神号码生

JavaSE(8)
问题要求:把双色球的开奖结果按以下形式输出:
* 红色球 (1-33 不能重复出6个数)
蓝色球(1-16 出一个数)
结果模式:01,05,23,28,29,33-05
& & & & & &&1.红球的值是多个不重复的值,要利用TreeSet集合类来转载返回。TreeSet类是Set的子类保证了数据不重复,而且TreeSet类可以利用默认比较器或自定义比较器来实现对加入该集合中元素的排序
& & & &2.蓝色球只返回单一int元素,普通方法即可
& & & &3.开奖结果字符串的拼接:利用Iterator遍历TreeSet对象拼接字符串
& & & &4.单例模式的运用:程序运行一次 ,这个类只产生这一个结果 , 再运行一次 ,又是另一个结果 ;但是程序只运行一次 &,你多次调用这个方法结果是一样的。(重要)
& & & & & &
说明:本类中自定义比较器可以不使用,使用默认的即可。关于Comparator 参考:
Java代码:
package com.java1029.single.
import java.util.I
import java.util.R
import java.util.TreeS
* 红色球 (1-33 不能重复出6个数)
蓝色球(1-16 出一个数)
结果模式:01,05,23,28,29,33-05
public class TicketResult {
private TicketResult(){}
//把每期结果作为属性私有化,且静态化,每次JVM运行(运行一次程序)初始化该类时,即为该属性赋值且不论这次运行创建多少个对象只返回一个同一个值
private static final String result = getResult();
public static String getFinallyResult(){
* 利用TreeSet装入红色球选出的值(1.值不重复
2.利用默认比较器或自定义比较器可以实现排序)
private static TreeSet&Integer& getRedBall(){
TreeSet&Integer& set = new TreeSet&Integer&(new MyComparator());
Random ran = new Random();
//保证只取6个不重复的值
while(set.size()&6){
//nextInt(int n) 方法:随机产生0~n(包括0,不包括n)之间的int值
set.add(ran.nextInt(33)+1);
* 获取特殊号码值
private static int getBlueBall(){
Random ran = new Random();
return ran.nextInt(16)+1;
* 拼接字符串,返回固定格式的开奖结果
private static String getResult(){
TreeSet&Integer& set = getRedBall();
int blue = getBlueBall();
Iterator&Integer& it = set.iterator();
StringBuffer sbf = new StringBuffer();
while(it.hasNext()){
int temp =it.next();
//把1,2,3...等转为01,02,03...
if(temp&10)
& sbf.append(&0&+temp+&,&);
& sbf.append(temp+&,&);
String result = sbf.toString().substring(0,sbf.toString().lastIndexOf(&,&));
result = result +&-&+
* 自定义比较器
* @author ml1990s
class MyComparator implements Comparator&Integer&{
public int compare(Integer o1, Integer o2) {
return o1-o2;
对以上代码的测试类
package com.java1029.single.
public class Test {
public static void main(String[] args) {
System.out.println(TicketResult.getFinallyResult());
System.out.println(TicketResult.getFinallyResult());
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:18396次
排名:千里之外
原创:13篇
转载:16篇
(1)(1)(2)(4)(1)(19)(1)共有 6658 人关注过本帖
标题:使用Java语言程序模拟彩票抽奖系统。
来 自:田埂上
等 级:新手上路
帖 子:20
结帖率:100%
&&已结贴√
&&问题点数:10&&回复次数:9&&&
使用Java语言程序模拟彩票抽奖系统。
要求实现以下功能:&&&1.双色球彩票系统&&&&&& (1)在1~33之间产生6个随机数。&&&&&&&&&&&&&&(2)再次产生一个1~16之间的随机数,&&&&&(3)用户输入彩票号码后打印结果&&&&&&&&&&&& ( 4)本系统接受用户机选
搜索更多相关主题的帖子:
等 级:贵宾
威 望:19
帖 子:228
专家分:1348
不知道啥叫双色球彩票,我没玩过规则复杂的彩票- -
程序代码:
&&&&&&&&&&&&&&& int a[]=new int[6];
&&&&&&&&Random ra=new Random();
&&&&&&&&&&&&&&& //获取6个1-33之间的随机数
&&&&&&&&for (int i = 0; i & a. i++) {
&&&&&&&&&&&&a[i]=ra.nextInt(33)+1;
&&&&&&&&&&&&&&& //获取一个1-16的随机数
&&&&&&&&int b=ra.nextInt(16)+1;
来 自:田埂上
等 级:新手上路
帖 子:20
回复 2楼 shellingford
双色球就是有6个蓝球和1个红球的一种福利性彩票&&&&&&&&&&&&&&&&&&&&&&&&&&&用户输入的“6+1”数字与系统产生的随机数比较之后并根据双色球的规则来判断是否中奖,最后输出结果。
等 级:贵宾
威 望:14
帖 子:279
专家分:1362
程序代码:import java.util.ArrayL
import java.util.C
import java.util.L
import java.util.R
public class Dr {
&&& private int lastN
&&& private Random random = new Random();
&&& private List&Integer& list = new ArrayList&Integer&();
&&& private List&Integer& numList = new ArrayList&Integer&();
&&& public Dr(){
&&&&&&&&init();
&&& private void init(){
&&&&&&&&list.clear();
&&&&&&&&numList.clear();
&&&&&&&&for(int i = 1; i&=33; i++){
&&&&&&&&&&&&list.add(i);
&&& public void generateNum(){
&&&&&&&&for(int i =0; i&6; i++){
&&&&&&&&&&&&numList.add(list.remove(random.nextInt(list.size())));
&&& public void generateLastNum(){
&&&&&&&&int index = getLastNumMaxIndex();
&&&&&&&&lastNum = list.remove(random.nextInt(index));
&&& private int getLastNumMaxIndex(){
&&&&&&&&Collections.sort(list);
&&&&&&&&for(int i =0; i&list.size(); i++){
&&&&&&&&&&&&if(list.get(i)&16)
&&&&&&&&&&&&&&& return i-1;
&&&&&&&&return -1;
&&& public void printRandomNums(){
&&&&&&&&Collections.sort(numList);
&&&&&&&&for(int i = 0;i&6;i++){
&&&&&&&&&&&&System.out.print(numList.get(i) + & &);
&&&&&&&&System.out.println(lastNum + & &);
&&& public static void main(String[] args) {
&&&&&&&&Dr d = new Dr();
&&&&&&&&d.generateNum();
&&&&&&&&d.generateLastNum();
&&&&&&&&d.printRandomNums();
等 级:版主
威 望:54
帖 子:2508
专家分:6424
以下是引用shellingford在 23:23:22的发言:
不知道啥叫双色球彩票,我没玩过规则复杂的彩票- -
&&&&&&&&&&&&&&& int a[]=new int[6];
&&&&&&&&Random ra=new Random();
&&&&&&&&&&&&&&& //获取6个1-33之间的随机数
&&&&&&&&for (int i = 0; i & a. i++) {
&&&&&&&&&&&&a=ra.nextInt(33)+1;
&&&&&&&&&&&&&&& //获取一个1-16的随机数
&&&&&&&&int b=ra.nextInt(16)+1; 双色球的6个数字是不能重复的
你的优秀和我的人生无关!!!!
    我要过的,是属于我自己的生活~~~
等 级:贵宾
威 望:14
帖 子:279
专家分:1362
加个产生n组随机数据的函数程序代码:import java.util.ArrayL
import java.util.C
import java.util.L
import java.util.R
public class Dr {
&&& private int lastN
&&& private Random random = new Random();
&&& private List&Integer& list = new ArrayList&Integer&();
&&& private List&Integer& numList = new ArrayList&Integer&();
&&& public Dr(){
&&&&&&&&init();
&&& private void init(){
&&&&&&&&list.clear();
&&&&&&&&numList.clear();
&&&&&&&&for(int i = 1; i&=33; i++){
&&&&&&&&&&&&list.add(i);
&&& public void generateNum(){
&&&&&&&&for(int i =0; i&6; i++){
&&&&&&&&&&&&numList.add(list.remove(random.nextInt(list.size())));
&&& public void generateLastNum(){
&&&&&&&&int index = getLastNumMaxIndex();
&&&&&&&&lastNum = list.remove(random.nextInt(index));
&&& private int getLastNumMaxIndex(){
&&&&&&&&Collections.sort(list);
&&&&&&&&for(int i =0; i&list.size(); i++){
&&&&&&&&&&&&if(list.get(i)&16)
&&&&&&&&&&&&&&& return i-1;
&&&&&&&&return -1;
&&& public void printRandomNums(){
&&&&&&&&Collections.sort(numList);
&&&&&&&&for(int i = 0;i&6;i++){
&&&&&&&&&&&&System.out.printf(&%3d&, numList.get(i));
&&&&&&&&System.out.printf(&%3d\n&,lastNum);
&&& public void generateRandomNums(int n){
&&&&&&&&for(int i =0; i&n; i++){
&&&&&&&&&&&&init();
&&&&&&&&&&&&generateNum();
&&&&&&&&&&&&generateLastNum();
&&&&&&&&&&&&printRandomNums();
&&& public static void main(String[] args) {
&&&&&&&&Dr d = new Dr();
&&&&&&&&d.generateNum();
&&&&&&&&d.generateLastNum();
&&&&&&&&d.printRandomNums();
&&&&&&&&d.generateRandomNums(8);
等 级:新手上路
怎样判断是否中奖呢?
等 级:新手上路
&&&&&&注意&&&要求&&&&&&实现以下功能:&&&1.双色球彩票系统&&&&&& (1)在1~33之间产生6个随机数。&&&&&&&&&&&&&&(2)再次产生一个1~16之间的随机数,&&&&&(3)用户输入彩票号码后打印结果&&&&&&&&&&&& ( 4)本系统接受用户机选&&&&&&
等 级:新手上路
项目效果图:
1.开始购买彩票
说明此系统的功能及规则,提示用户选择是否使用本系统,效果如图所示
2.如果在上图中选择“n”,则退出系统,效果如图所示
附件: 您没有浏览附件的权限,请
等 级:新手上路
3.如果在第一个图中选择“y”
4.如果在上图中选择y则进入双色球机选
5.如果在上图选择“n”,则系统进入人工选
版权所有,并保留所有权利。
Powered by , Processed in 0.024271 second(s), 8 queries.
Copyright&, BCCN.NET, All Rights Reserved双色球随机选择 - Java版本 - 开源中国社区
当前访客身份:游客 [
当前位置:
发布于 日 11时,
请大家贴出运行结果..&我准备去买大家贴出来的结果..&:)我的结果:32&26&13&16&10&5&-&15
代码片段(1)
1.&[代码][Java]代码&&&&
package god.damn.
public class ColorBall {
private static final int RED_BALL_LENGTH = 33;
private static final int BLUE_BALL_LENGTH = 16;
private static final int RESULT_LENGTH = 7;
public static void main(String[] args) {
int reds[] = new int[RED_BALL_LENGTH];
int blues[] = new int[BLUE_BALL_LENGTH];
int result[] = new int[RESULT_LENGTH];
for (int i = 0; i & RED_BALL_LENGTH; ++i) {
reds[i] = i + 1;
for (int i = 0; i & BLUE_BALL_LENGTH; ++i) {
blues[i] = i + 1;
// red ball
int index = 0;
for (int i = 0; i & RESULT_LENGTH - 1; ++i) {
index = (int) (Math.random() * RED_BALL_LENGTH);
// Avoid duplicate
if (reds[index] == 0) {
// Reselect if duplicate
// set first value and the larger value
if (i == 0 || reds[index] & result[i - 1]) {
result[i] = reds[index];
for (int k = i - 1; k &= 0; --k) {
if (reds[index] & result[k]) {
result[k + 1] = result[k];
result[k] = reds[index];
// Mark 0 for selected number
reds[index] = 0;
// blue ball
result[RESULT_LENGTH - 1] = blues[(int) (Math.random() * BLUE_BALL_LENGTH)];
for (int i = 0; i & RESULT_LENGTH; ++i) {
split = i == RESULT_LENGTH - 2 ? " - " : " ";
System.out.print(result[i] + split);
开源中国-程序员在线工具:
相关的代码(3461)
坐等,晚上看结果
2楼:komelio 发表于
纯随机的,没啥意思
要能结合过去的历史记录,排除一些理论上不会出现的组合(如1,2,3,4,5,6,7)
结合一些遗漏, 奇偶, 和值分布等, 写个算法出来还差不多
3楼:kext 发表于
引用来自“komelio”的评论纯随机的,没啥意思
要能结合过去的历史记录,排除一些理论上不会出现的组合(如1,2,3,4,5,6,7)
结合一些遗漏, 奇偶, 和值分布等, 写个算法出来还差不多确实有这个打算.. 到时写出来在分享代码..
4楼:kext 发表于
引用来自“董宇”的评论坐等,晚上看结果运行一下给我买一组啦.... 嘻嘻..
5楼:lrd 发表于
我用.NET写过一个 &欢迎使用指正 &
6楼:NobleHan 发表于
昨天试了一下,中了五块钱,特来感谢LZ,打破了我多年来买彩票从不中奖的魔咒,顺便贴一下昨天我生成的号码: 08 14 17 20 27 33 : 03, 昨天没有及时贴出程序运行结果,深表惭愧,忘LZ见谅
7楼:kext 发表于
引用来自“NobleHan”的评论昨天试了一下,中了五块钱,特来感谢LZ,打破了我多年来买彩票从不中奖的魔咒,顺便贴一下昨天我生成的号码: 08 14 17 20 27 33 : 03, 昨天没有及时贴出程序运行结果,深表惭愧,忘LZ见谅xixi. 恭喜..
8楼:liu 发表于
干脆写个双色球的全组合,然后再去筛选
9楼:kext 发表于
引用来自“liu”的评论干脆写个双色球的全组合,然后再去筛选有这个想法.. 已经开始动手写了.. 嘻嘻..
10楼:liu 发表于
引用来自“3岁就很猥琐”的评论引用来自“liu”的评论干脆写个双色球的全组合,然后再去筛选有这个想法.. 已经开始动手写了.. 嘻嘻..到时记得分享一下
11楼:夺涛 发表于
如何快速生成双色球全部号码组合?
开源从代码分享开始
kext的其它代码

我要回帖

更多关于 我需要钱怎么办 的文章

 

随机推荐