「java彩票api」Java彩票模拟生成经典程序
今天给各位分享java彩票api的知识,其中也会对Java彩票模拟生成经典程序进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、3D彩票JAVA编程怎么写?
- 2、JAVA课程设计 彩票号码产生器
- 3、JAVA小问题关于彩票的
- 4、java的彩票
- 5、java 福利彩票32选6 这段代码 能随机选出6个不重复的号码,但是 不能排除0;求大神指教,修改!
- 6、Java 编写一个双色球彩票系统,用户从键盘输入6个1-33的数字,与系统自动产生的1-33
3D彩票JAVA编程怎么写?
import java.util.ArrayList;import java.util.List;import java.util.Random;import java.util.Scanner; public class Lotto { public static final int NUMBER = 7; public static void main(String[] args) { ListInteger userNumbers = new ArrayListInteger(); Scanner scanner = new Scanner(System.in); int i = 1; while(i 8) { System.out.println("输入第" + i + "个数字: "); userNumbers.add(scanner.nextInt()); i ++; } System.out.println(prize(userNumbers.toArray(new Integer[NUMBER]))); } private static Integer[] generateLotto() { ListInteger lottoNumbers = new ArrayListInteger(); Random rand = new Random(); int lottoNumber, i = 0; while(i NUMBER) { lottoNumber = rand.nextInt(35) + 1; if(!lottoNumbers.contains(lottoNumber)) { lottoNumbers.add(lottoNumber); i ++; } } return bubbleSort(lottoNumbers.toArray(new Integer[NUMBER])); } private static Integer[] bubbleSort(Integer[] array) { for(int i = 0; i array.length; i ++) { for(int j = 0; j array.length - i - 1; j ++) { if(array[j] array[j + 1]) { int temp = array[j + 1]; array[j + 1] = array[j]; array[j] = temp; } } } return array; } public static String prize(Integer[] userNumbers) { int count = 0; Integer[] lottoNumbers = generateLotto(); for(Integer i : userNumbers) { for(Integer j : lottoNumbers) { if (i == j) { count ++; } } } return "猜对了 "+ count + " 个彩票号码"; }}
输入第1个数字:
5
输入第2个数字:
14
输入第3个数字:
19
输入第4个数字:
24
输入第5个数字:
33
输入第6个数字:
34
输入第7个数字:
27
猜对了 3 个彩票号码
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;
}
}
JAVA小问题关于彩票的
import java.util.ArrayList;
import java.util.List;
public class Test {
/**
* @param args
*/
public static void main(String[] args){
ListInteger list = new ArrayListInteger();
for(int i=0;i6;){
int temp = (int) (Math.random()*33+1);
System.out.println(temp);
if(!list.contains(temp)){
list.add(temp);
i++;
}
}
System.out.println(list);
}
}
--------------------------------------------------------------
public class Test {
/**
* @param args
*/
public static void main(String[] args){
int[] result = new int[6];
for(int i=0;i6;){ //i控制抽出数据的个数
int temp = (int) (Math.random()*33+1); //随机生成个1-33的数
System.out.println(temp);
boolean isExist = false; //重复标志 false-不重复,true-重复
for(int j=0;jresult.length;j++){ //循环结果数组
if(result[j] == temp){ //如果有重复数据
isExist = true; //
}
}
if(!isExist){ //如果没有重复 添加到数组中
result[i]=temp;
i++;
}
}
////数据结果
System.out.println("--------结果----------");
for(int i=0;iresult.length;i++){
System.out.println(result[i]);
}
}
}
都给你加上注释了,好好读读,读明白了 不要光应付作业啊。
java的彩票
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
/**
* 测试彩票类
* @author doulmi
*
*/
public class LotteryDemo {
public static void main( String[] args ) {
Scanner scanner = new Scanner( System.in );
System.out.print( "请输入要购买的注数:" );
System.out.println();
int buyN = 0;
if ( scanner.hasNextInt() ) {
buyN = scanner.nextInt();
} else {
System.out.println( "请输入正确的数字" );
}
for ( int i = 0; i buyN; i ++ ) {
Lottery lot = new Lottery();
lot.generate();
System.out.print( "第" );
System.out.print( i );
System.out.print( "注" );
lot.printData();
}
}
}
/**
* 彩票类
* @author Administrator
*
*/
class Lottery {
private static final int NUM_TO_GETOUT = 7;
//能产生的最大数值为99
private static final int MAX_NUM = 35;
public ArrayList Integer list;
private int[] result;
public Lottery() {
list = new ArrayList Integer ();
for ( int i = 1; i = MAX_NUM; i ++ ) {
list.add( i );
}
result = new int[ NUM_TO_GETOUT ];
}
public void generate() {
Random r = new Random();
for ( int i = 0; i NUM_TO_GETOUT; i ++ ) {
result[ i ] = list.remove( r.nextInt( list.size() ) );
}
}
/**
* 关于票头的打印。。我不知道票头是什么。
*/
public void pringTitle() {
}
/**
* 实现号码的打印
*/
public void printData() {
for ( int n : result ) {
System.out.print( n );
System.out.print( " " );
}
System.out.println();
}
}
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;
}
Java 编写一个双色球彩票系统,用户从键盘输入6个1-33的数字,与系统自动产生的1-33
就不写代码了,别人写的代码复制也没意思,给你个思路。
首先获取1到33的随机数,然后放入一个listbyte集合中。每次放入集合都要判断该集合中是否存在这个数字,如果存在则重新获取随机数。如果集合长度为6,则停止获取随机数,这个集合里就是本次嗯中奖号码。然后就是让用户输入6个数字,同样放到一个集合中,放入至少检验用户输入的是否是1-33的数字,并且这个集合里面是否有这个数字。如果有,要用户重新输入。等用户输入完,再循环0-5的下标,分别从两个集合中取值,对比,设置一个byte变量,如果值相同,则产量加1。最后判断这个产量的值为几,就知道有几个相同的了,然后根据相同的个数来打印出用户获得了几等奖。如果你还没学集合,那就用byte数组。
java彩票api的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于Java彩票模拟生成经典程序、java彩票api的信息别忘了在本站进行查找喔。