java实现双色球抽奖算法
作者:PowerAlan 发布时间:2023-11-28 23:51:51
标签:java,双色球,抽奖
本文实例为大家分享了java实现双色球抽奖的具体代码,供大家参考,具体内容如下
实现双色球先考虑整体思路:
1.随机生成7位数的数组为大奖号码(前6位红球每个数值取值范围为1~33,而且6个数值不能相同,第七位篮球取值范围为1~16)
2.判断购买号码为手动输入还是机选(如为手动输入,将用for循环一次从控制台输入一个依次数赋值到数组;如为机选,实现代码和 1. 中相同)
3.将大奖号码和购买号码的前6位红球分别实现升序排列
4.判断大奖号码和购买号码的号码匹配程度来确定得奖级别或者没有得奖,并将结果输出到控制台
实现代码具体如下:
//导包
import java.util.*;
class TestDouble01
{
public static void main(String[] args)
{
Scanner s = new Scanner(System.in);
Random ran = new Random();
//随机生成大奖号码
int arr2[]=new int[7];
int shu =33;
for (int i=0;i<arr2.length ;i++ )
{
boolean flag2=true;
while (flag2)
{
if(i==6){
shu = 16;
}
int b = ran.nextInt(shu)+1;
int num2=0;
for (int j=0;j<arr2.length ;j++ )
{
if (b==arr2[j])
{
num2++;
}
}
if (num2==0)
{
arr2[i]=b;
flag2=false;
}
}
}
//判断购买号码的生成方式
boolean flag=true;
int arr1[]=new int[7];
while(flag){
System.out.println("请选择机选还是手选:1、机选;2、手选;3、退出 (请输入对应序号)");
int xz=s.nextInt();
if (xz == 1)
{
int shu1 = 33;
//随机生成购买号码
for (int i=0;i<arr1.length ;i++ )
{
boolean flag1=true;
while (flag1)
{
if (i==6)
{
shu1=16;
}
int a = ran.nextInt(shu1)+1;
int num1=0;
for (int j=0;j<arr1.length ;j++ )
{
if (a==arr1[j])
{
num1++;
}
}
if (num1==0)
{
arr1[i]=a;
flag1=false;
}
}
}
flag=false;
}else if (xz==2)
{
//手动输入
for (int i=0;i<arr1.length ;i++ )
{
System.out.println("请输入第"+(i+1)+"个数:");
arr1[i]=s.nextInt();
}
s.close();
}else if (xz==3)
{
//退出
flag=false;
}else{
System.out.println("请输入正确的序号");
}
}
//将随机的大奖数组前6位红球升序排列
for(int j=0;j<=arr1.length-2;j++){
for (int i = 0;i<arr1.length-2-j;i++ )
{
if (arr1[i]>arr1[i+1])
{
arr1[i]=arr1[i]+arr1[i+1];
arr1[i+1]=arr1[i]-arr1[i+1];
arr1[i]=arr1[i]-arr1[i+1];
}
}
}
//将随机的购买数组前6位红球升序排列
for(int j=0;j<=arr2.length-2;j++){
for (int i = 0;i<arr2.length-2-j;i++ )
{
if (arr2[i]>arr2[i+1])
{
arr2[i]=arr2[i]+arr2[i+1];
arr2[i+1]=arr2[i]-arr2[i+1];
arr2[i]=arr2[i]-arr2[i+1];
}
}
}
//输出打印大奖号码和购买号码
System.out.println("购买号码为:"+Arrays.toString(arr1));
System.out.println("大奖号码为:"+Arrays.toString(arr2));
//判断奖项
//查询两个数组中前6位数字相同的数量
int num = 0;
for (int i=0;i<arr1.length-1 ;i++ )
{
for (int j=0;j<arr2.length-1 ;j++ )
{
if (arr2[i]==arr1[j])
{
num++;
}
}
}
//由相同的数字数量判断奖项
System.out.println(num);
System.out.println(arr1[6]==arr2[6]);
if (arr1[6]==arr2[6])
{
if (num==6){
System.out.println("恭喜您获得一等奖");
}else if (num==5){
System.out.println("恭喜您获得三等奖");
}else if (num==4){
System.out.println("恭喜您获得四等奖");
}else if (num==3){
System.out.println("恭喜您获得五等奖");
}else if (num==2 || num==1 || num==0){
System.out.println("恭喜您获得六等奖");
}else{
System.out.println("您未获奖,再接再厉");
}
}else{
if (num==6){
System.out.println("恭喜您获得二等奖");
}else if (num==5){
System.out.println("恭喜您获得四等奖");
}else if (num==4){
System.out.println("恭喜您获得五等奖");
}else{
System.out.println("您未获奖,再接再厉");
}
}
}
}
代码运行结果如下:
由于获奖为概率问题,所以想获得到结果为大奖的几率很低,大多数为:“未获奖 ”属于正常现象。
来源:https://blog.csdn.net/PowerAlan/article/details/78820479


猜你喜欢
- 前言代码库:https://gitee.com/leo825/springboot-learning-parents.git之前写过《Spr
- C#的FileInfo类提供了与File类相同的功能,不同的是FileInfo提供的都是成员方法,使用示例如下所示:1、读文件://创建只读
- 本文实例讲述了C#通过xpath查找xml指定元素的方法。分享给大家供大家参考。具体如下:orders.xml文档内容如下<?xml
- 本文实例讲述了java实现MD5加密的方法。分享给大家供大家参考,具体如下:private String getMD5Str(String
- 描述输入一行字符串,分别统计出其中英文字母、空格、数字和其它字符的个数输入描述:控制台随机输入一串字符串输出描述:输出字符串中包含的英文字母
- iText介绍和说明因为项目需要生成PDF文件,所以去找了一下能够生成PDF的Java工具,看到了iText可以说好评如潮。如果你想通过ja
- Java中,将字节数组转成图片的有很多种方式,今天在这里记录其中一种,方便以后查询,也可以提供给没有接触的童鞋做一个参考。首先是将图片转成字
- 数据结构是数据存储的方式,算法是数据计算的方式。所以在开发中,算法和数据结构息息相关。今天的讲义中会涉及部分数据结构的专业名词,如果各位铁粉
- 现在,我们来讲一下怎么用Java来实现简单画板,要实现的功能有:选择图形(方形、圆形、多边形...)、可以选择颜色。首先,打开windows
- 本文较为详细的讲解了C#中Html.RenderPartial与Html.RenderAction的区别,具体分析如下:Html.Rende
- 本文实例讲述了java执行Linux命令的方法。分享给大家供大家参考。具体实现方法如下:public class StreamGobbler
- 一、注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan、@Configur
- 大家好,今天我们继续来学习Android 8.0系统的适配。之前我们已经讲到了,Android 8.0系统最主要需要进行适配的地方有两处:应
- 本文实例讲述了Java实现SSL双向认证的方法。分享给大家供大家参考,具体如下:我们常见的SSL验证较多的只是验证我们的服务器是否是真实正确
- 1. 线程的5种状态从操作系统层面上,任何线程一般都具有五种状态,即创建、就绪、运行、阻塞、终止。(1) 新建状态(NEW)在程序中用构造方
- 本文实例为大家分享了java实现猜数字游戏的具体代码,供大家参考,具体内容如下随机生成0~100的数字,通过控制台输入猜测数字,输出进行提示
- 当用eclipse 导入一个已经存在的项目时,经常会遇见:Unable to resolve target 'android-XX&
- 使用idea进行JavaWeb开发时,在前端与后台交互常常出现乱码问题,包括日志/控制台输出乱码,参数乱码等问题,归根结底是编码格式不对,解
- 冒泡排序:就是按索引逐次比较相邻的两个元素,如果大于/小于(取决于需要升序排还是降序排),则置换,否则不做改变这样一轮下来,比较了n-1次,
- 本文实例讲述了android开发之listView组件用法。分享给大家供大家参考,具体如下:关于Android ListView组件中and