
正文
JAVA彩票机的代码 java编程彩票
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
用Java程序写一个彩票的模拟程序生成6个红球(1-33的随机数),1个蓝球(1-16的随机数),随机数可以重复
import java.util.Random;
import java.util.Scanner;
public class DoubleBalls {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("是否机选一组双色球号码?(Y/N)");
Scanner input = new Scanner(System.in);
char a = input.next().charAt(0); // 输入一个char字符JAVA彩票机的代码,0位即是第一位
if (a == 'Y' || a == 'y') {
Random suiji = new Random(); // 创建suiji方法
int blue = suiji.nextInt(16);//从0到16中选一个数字个蓝球
while(blue==0){
blue=suiji.nextInt(16);
}//如果选到JAVA彩票机的代码了0JAVA彩票机的代码,再选一次给blue
int red[] = new int[6];// 用一个6个元素JAVA彩票机的代码的数组装红球
for (int i = 0; i 6; i++) {
red[i] = suiji.nextInt(33); // 随机分配0到33的整数
if (red[i] == 0) {i--;}
if (i == -1) {i = 0;}
for (int j = 0; j i; j++) {
while (red[i] == red[j]) {i--;}// 发现相同的从新回去生成一个
}
}
System.out.print("红球JAVA彩票机的代码:");
for (int k = 0; k red.length; k++) {
System.out.print(red[k] + " ");// 输出数组red
}
System.out.print("蓝球:"+blue);
} else
System.out.println("fuck you~");
}
}
应该可以了,可以产生一组。。。如果楼主你中头奖了,送我套房好了哈^0^
相关问答
Q1: java大神帮我看看作业,做一个25选5的彩票机,我做的算不算比较简洁的?
虽然简洁,但不规范,最好是按规范要求走;例如:输出的25,最好写成:
System.out.print("彩票总长度为:"+ArrayNum.length+"\n"+"随机号码为:");
for(int i =0; i25;i++) 最好写成:for(int i =0; iarrayNum.length;i++)
Q2: java 福利彩票32选6 这段代码 能随机选出6个不重复的号码,但是 不能排除0;求大神指教,修改!
按你的逻辑,出现0有2种情况:
1、随机出g==0;可以用 an[i]=g+1; 解决。(另外rd.nextInt(n)的取值范围是0~n-1)
2、随机出以前相同的数字,但你的处理办法是不管了,直接continue,所以中间就空出一个数字未加到数组an中,默认等于0。可用 i--; 解决
找你的代码稍微改动即可:
for (int i = 0; i an.length; i++) {
g = rd.nextInt(n);
if (bl[g]) {
i--;
continue;
}
an[i] = g+1;
bl[g] = true;
}
Q3: JAVA课程设计 彩票号码产生器
我这有个超级大乐透的代码在控制台输出的 还没有统计奖项概率 希望可以帮到你 :1.先说下思路 a.声明2个数组和2个变量数组分别放前区的35个数和后区的12个数,变量分别为这两个数组的长度 b.首先随机获得前区的5个号码:Random .nextInt(前区长度的变量) 获得随机数,找到第一个数组中下标为这个随机数的元素,取出放在变量中. 这 儿可以判断格式 的.可以用正则表达式判断是否为各位数,如果是的话就补全0.然后移除数组中这个元素.当然存储数组的变量要减去1的然后重复以上的4次这样就获得了1-35中5个不重复的数字. c.同上. 2.附代码SuperJoyful.javaimport java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Random;
import java.util.regex.Matcher;
import java.util.regex.Pattern;/**
* 以下是模拟一个超级大乐透随机选号功能,严格按概率生成
* @author Jack
*
*/
public class SuperJoyful {
// 声明一个List用于存放前区号码
private ListInteger objFrontList = new ArrayListInteger();
// 声明一个List用于存放后区号码
private ListInteger objBackList = new ArrayListInteger();
// 声明一个正则表达式对象,用于匹配是否是一位数字,用于输出时验证
Pattern objP = Pattern.compile("\\d");
// 所要操作的字符串
Matcher objM = null;
String[] Front = new String[5];
String[] Back = new String[2]; // 初始化摇奖号码
public void init() {
for (int i = 1; i = 35; i++) {
objFrontList.add(i);
}
for (int i = 1; i = 12; i++) {
objBackList.add(i);
}
} // 开始摇奖
public void beginLottery() {
Random objRandom = new Random();
int nFrontCount = 35; // 前区号码总数
int nBackCount = 12; // 后区号码总数 // 摇奖前先清空LIST,再初始化
objFrontList.clear();
//System.out.println(objFrontList);
objBackList.clear();
//System.out.println(objBackList);
this.init();
/**
* 产生5个前区号码
*/
for (int i = 0; i 5; i++) {
//System.out.println("nFrontCount:"+nFrontCount);
// 初始时有35个前区号,随机产生一个索引
int nIndex = objRandom.nextInt(nFrontCount);
// 将选出的号码暂时存放在变量中,带正则表达式验证
int nTemp = objFrontList.get(nIndex);
String strTemp = new Integer(nTemp).toString();
// 将获得的号码与正则表达式匹配
objM = objP.matcher(strTemp);
boolean flag = objM.matches();
// 如果是一位数,则在前面补零
if (flag) {
Front[i] = ("0" + strTemp + " ");
} else {
Front[i] = (strTemp + " ");
}
// 删除LIST中该索引处的号码,因为选出一个就不再放回
objFrontList.remove(nIndex);
// 号码总数减少一个
nFrontCount--;
}
Arrays.sort(Front);
for (int n = 0; n Front.length; n++) {
System.out.print(Front[n] + "\t");
}
System.out.print("+ ");
/**
* 产生2个后区号码
*/
for (int i = 0; i 2; i++) {
//System.out.println("nBackCount:"+nBackCount);
// 初始时有12个后区号,随机产生一个索引
int nIndex = objRandom.nextInt(nBackCount);
// 将选出的号码暂时存放在变量中,带正则表达式验证
int nTemp = objBackList.get(nIndex);
String strTemp = new Integer(nTemp).toString();
// 将获得的号码与正则表达式匹配
objM = objP.matcher(strTemp);
boolean flag = objM.matches();
// 如果是一位数,则在前面补零
if (flag) {
Back[i] = ("0" + strTemp + " ");
} else {
Back[i] = (strTemp + " ");
}
// 删除LIST中该索引处的号码,因为选出一个就不再放回
objBackList.remove(nIndex);
// for(int n = 0; nobjBackList.size();n++){
// System.out.println("objBackList:"+objBackList.get( n ));
// }
// 号码总数减少一个
nBackCount--;
}
Arrays.sort(Back);
for (int n = 0; n Back.length; n++) {
System.out.print(Back[n] + "\t");
}
// 产生一注后回车
System.out.println("");
} // 按要求输出多少注彩票
public void outPutLottery(int vnCount) {
for (int i = 0; i vnCount; i++) {
this.beginLottery();
}
} /**
* @param args
*/
public static void main(String[] args) {
SuperJoyful objSJ = new SuperJoyful();
EnterConsole objEC = new EnterConsole();
// 声明一个正则表达式对象,用于匹配是否是数字
Pattern objP = Pattern.compile("\\d{1,}");
// 所要操作的字符串
Matcher objM = null;
// 接收控制台输入
String objTemp = (String) objEC.printConsole();
//String strTemp = (String)objTemp;
objM = objP.matcher(objTemp);
boolean flag = objM.matches();
int nTemp = 0;
if (flag) {
nTemp = new Integer(objTemp);
} else {
System.out.println("对不起,只能输入数字!");
}
objSJ.outPutLottery(nTemp);
}
}EnterConsole.javaimport java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class EnterConsole
{
public Object printConsole(){
System.out.print("请输入你要随机选取多少注,确认回车即可:");
BufferedReader objBR = new BufferedReader(new InputStreamReader(System.in));
String strValue = null;
try
{
strValue = (String)objBR.readLine();
}
catch ( IOException e )
{
// TODO Auto-generated catch block
e.printStackTrace();
}
return strValue;
}
}
Q4: java程序编写双色球代码
截图:
选取红色球号码方法:
/**
* 随机选取红色球
*
* 获取1~33其中一个数
*
* 0 = Math.random 1
*/
private int randomOneRedValue() {
int randomValue = (int) (Math.random() * 33 + 1);
return randomValue;
}
选取蓝色球号码方法:
/**
* 随机选取蓝色球号码
*
* 获取1~16的数值
*
* @return
*/
private int randomOneBlueValue() {
int randomValue = (int) (Math.random() * 15 + 1);
return randomValue;
}
测试:
public class Test1 {
public static void main(String[] arg) {
Test1 localTest1 = new Test1();
// 双色球 :红色球号码 + 蓝色球号码
// 六个红色球和一个蓝色球号码
// 红色球号码从1~33中选择
// 蓝色球号码从1~16中选择
// 一等奖:七个号码相符(六个红色号码和一个蓝色球号码)(红色球号码顺序不限JAVA彩票机的代码,下同)
// 二等奖:六个红色球号码相符;
// 三等奖:五个红色球号码JAVA彩票机的代码,或者四个红色球号码和一个蓝色球号码相符;
// 四等奖:五个红色球号码,或者三个红色球号码和一个蓝色球号码相符;
// 五等奖:四个红色球号码,或者三个红色球号码和一个蓝色球号码相符;
// 六等奖:一个蓝色球号码相符(有误红色球号码相符均可);
// 例如:红色球号码 01 06 13 19 24 28 蓝色球号码 16
System.out.println("开始出奖");
// 定义双色球数组,大小为7
String[] values = new String[7];
for (int i = 0; i 7; i++) {
if (i == 6) {
int blueValue = localTest1.randomOneBlueValue();
if (blueValue 10) {
values[i] = "0" + blueValue;
} else {
values[i] = String.valueOf(blueValue);
}
} else {
int redValue = localTest1.randomOneRedValue();
if (redValue 10) {
values[i] = "0" + redValue;
} else {
values[i] = String.valueOf(redValue);
}
}
}
System.out.println();
System.out.println("出奖结束");
System.out.println();
System.out.print("双色球开奖号码:");
// 打印双色球号码
for (String value : values) {
System.out.print(" " + value);
}
}
}
JAVA彩票机的代码的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java编程彩票、JAVA彩票机的代码的信息别忘了在本站进行查找喔。





