「java彩票api」Java彩票模拟生成经典程序

博主:adminadmin 2023-01-28 16:51:10 237

今天给各位分享java彩票api的知识,其中也会对Java彩票模拟生成经典程序进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

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的信息别忘了在本站进行查找喔。