当前位置: 代码迷 >> 综合 >> 使用random来模拟双色球中奖过程
  详细解决方案

使用random来模拟双色球中奖过程

热度:73   发布时间:2023-10-24 03:35:44.0
package testjava;import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Random;/*** * @ClassName:  DoubleChromosphere   * @Description:TODO(这里用一句话描述这个类的作用)   * @author: 清之羽 * @date:   2018年8月14日 下午8:21:26   * 实现双色球中奖过程的模拟* @Copyright: 2018 All rights reserved.*/
public class DoubleChromosphere 
{public static void main(String[] args) {DoubleChromosphere doubleChromosphere=new DoubleChromosphere();
//	分别获取红色球和蓝色球的开奖号List<Integer> redAwardNumber=doubleChromosphere.getRedAwardNumber();List<Integer> blueAwardNumber=doubleChromosphere.getBlueAwardNumber();
//	分别获取红色球和蓝色球的投注号List<Integer> redBettingNumber=doubleChromosphere.getRedBettingNumber();List<Integer> blueBettingNumber=doubleChromosphere.getBlueBettingNumber();int redWinningBall=doubleChromosphere.getRedBallWinningBall(redAwardNumber, redBettingNumber);int blueWinningBall=doubleChromosphere.getBlueBallWinningBall(blueAwardNumber, blueBettingNumber);System.out.println("中奖等级为:");System.out.println("红球:"+redWinningBall+",篮球:"+blueWinningBall);}
//	当前方法用于存放红色球和蓝色球的开奖号public List<Integer> getRedAwardNumber(){List<Integer> redAwardNumber=new ArrayList<Integer>();Random random=new Random(10);while(redAwardNumber.size()<6){
//			生成一个1-33 之间的任意一个随机数字,作为红色球的开奖号Integer redNumber=random.nextInt(32)+1;if (redAwardNumber.contains(redNumber)) {continue;}redAwardNumber.add(redNumber);}Collections.sort(redAwardNumber);System.out.println("红色球的开奖号依次为:");for (Integer integer : redAwardNumber) {System.out.print(integer+" ");}System.out.println();return redAwardNumber;}
//	获得蓝色球的开奖号public List<Integer> getBlueAwardNumber(){Random random=new Random(8);
//		获取1-16当中的任意一个数字作为开奖号Integer buleNumber=random.nextInt(16)+1;List<Integer> blueAwardNumber=new ArrayList<Integer>();blueAwardNumber.add(buleNumber);System.out.println("蓝色球当中的开奖号为:");System.out.println(blueAwardNumber.get(0));return blueAwardNumber;}
//	获得用户所购买的红色球投注号码betting(投注)public List<Integer> getRedBettingNumber(){List<Integer> redBettingNumber=new ArrayList<Integer>();
//		当不设定随机数种子的时候每一次所进行生成的随机数对象都是不相同的Random random=new Random();while(redBettingNumber.size()<6){
//			生成一个1-33 之间的任意一个随机数字,作为用户的投注号Integer redNumber=random.nextInt(32)+1;if (redBettingNumber.contains(redNumber)) {continue;}redBettingNumber.add(redNumber);}Collections.sort(redBettingNumber);System.out.println("红色球的投注号依次为:");for (Integer integer : redBettingNumber) {System.out.print(integer+" ");}System.out.println();return redBettingNumber;}
//	获得蓝色球的投注号public List<Integer> getBlueBettingNumber(){Random random=new Random();
//		获取1-16当中的任意一个数字作为开奖号Integer buleNumber=random.nextInt(16)+1;List<Integer> blueBettingNumber=new ArrayList<Integer>();blueBettingNumber.add(buleNumber);System.out.println("蓝色球当中的投注号为:");System.out.println(blueBettingNumber.get(0));return blueBettingNumber;}
//	判断红色球的中奖数目public int getRedBallWinningBall(List<Integer> redAwardNumber,List<Integer> redBettingNumber){int number=0;for(int i=0;i<redBettingNumber.size();i++){Integer redNumber=redBettingNumber.get(i);if(redAwardNumber.contains(redNumber))number++;}System.out.println("红色球当中投注号与中奖号相同的小球数为:");System.out.println(number);return number;}
//	判断蓝色球的中奖数目public int getBlueBallWinningBall(List<Integer> blueAwardNumber,List<Integer> blueBettingNumber){int number=0;for(int i=0;i<blueBettingNumber.size();i++){Integer blueNumber=blueBettingNumber.get(i);if(blueAwardNumber.contains(blueNumber))number++;}System.out.println("蓝色球当中投注号与中奖号相同的小球数为:");System.out.println(number);return number;}
}