福彩双色球、3D、快乐8选10、体彩大乐透生成

/**
 *
 */
package com.enjoy.util;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Random;
import java.util.Scanner;

/**
 * @author Lenovo
 *
 */
public class TestTicket {

    /**
     * 福彩3D
     */
    public static void fc3D(){
        int a1 = (int)(Math.random()*10);
        int a2 = (int)(Math.random()*10);
        int a3 = (int)(Math.random()*10);
        //生成三位3D随机中奖号码;
        Scanner scan = new Scanner(System.in);
        System.out.println("请输入你要买的三个0-9你选择的整数号码,用空格隔开。");
        int b1 = scan.nextInt();
        int b2 = scan.nextInt();
        int b3 = scan.nextInt();
        if(b1==b2&&b1==b3){
            System.out.println("你选择的是豹子直选");
            if(a1==b1&&a2==b1&&a1==b1){
                System.out.println("恭喜您豹子直选中奖,获得金额1040元!");
            }else{
                System.out.println("豹子直选--感谢您对公益事业的支持!");
            }
        }else{
            System.out.println("请选择直选还是组选   输入1代表直选,输入2代表组选");
            int c = scan.nextInt();
            if(c==1){
                System.out.println("你选择的是直选");
                if(a1==b1&&a2==b2&&a3==b3){
                    System.out.println("恭喜您中奖,获得金额1040元!");
                }else{
                    System.out.println("感谢您对公益事业的支持!");
                }


            }else{
                System.out.println("你选择的是组选");
                //中奖号假设123   则有123 132 213 312  231 321 此包含了组3组6,先判断是否中奖
                if(a1==b1&&a2==b2&&a3==b3||a1==b1&&a2==b3&&a3==b2||a1==b2&&a2==b1&&a3==b3||a1==b2&&a2==b3&&a3==b1||a1==b3&&a2==b1&&a3==b2||a1==b3&&a2==b2&&a3==b1){
                    System.out.println("组选中奖,接下来判断组选中奖金额");

                    if(b1==b2||b2==b3||b1==b3){
                        System.out.println("这是组选3");
                        System.out.println("恭喜您组选3中奖,获得金额346元!");
                    }else{
                        System.out.println("这是组选6");
                        System.out.println("恭喜您组选6中奖,获得金额173元!");
                    }

                }else{
                    System.out.println("感谢您对公益事业的支持!");
                }
            }
        }
        System.out.println("本次中奖号码为"+a1+","+a2+","+a3);
    }


    /**
     * 福彩3D
     */
    public static void generateFc3D(){
        int a1 = (int)(Math.random()*10);
        int a2 = (int)(Math.random()*10);
        int a3 = (int)(Math.random()*10);
        System.out.println("福彩3D号码为:"+a1+","+a2+","+a3);
    }
    /**
     * 快乐8选10随机数字组合
     * @return
     */
     public static List<Integer> generateRandomNumbers() {
            List<Integer> allNumbers = new ArrayList<>();
            for (int i = 1; i <= 80; i++) {
                allNumbers.add(i);
            }

            Collections.shuffle(allNumbers);

            List<Integer> selectedNumbers = new ArrayList<>();
            for (int i = 0; i < 10; i++) {
                selectedNumbers.add(allNumbers.get(i));
            }

            Collections.sort(selectedNumbers);
            return selectedNumbers;
    }

     /***
         * 取得范围内的随机数
         * @param min
         * @param max
         * @return
         */
        public static int getRandInteger(int min, int max) {
            int rt = 0;
            try {
                Random random = new Random();
                rt = random.nextInt(max - min + 1) + min;
                return rt;
            } catch (Exception e) {
                System.out.println("Get random error");
                return -1;
            }
        }


        /**
         * 大乐透方案代码
         */
        public static void dltPolicy() {
            //定义变量装7组大乐透彩票号码
            ArrayList<Integer> dltNumberArray = new ArrayList<>();
            //校验前区随机号码是否重复
            HashMap<Integer, Integer> frontArea = new HashMap<>();
            //校验后区随机号码是否重复
            HashMap<Integer, Integer> endArea = new HashMap<>();
            Integer front = getRandInteger(1, 35);
            frontArea.put(front, 0);
            dltNumberArray.add(front);
            Integer end = 0;
            for (int i = 0; i < 34; i++) {
                if ((i + 1) % 5 == 0 && i < 33) {
                    for (int j = 0; j < 2; j++) {
                        end = getRandInteger(1, 12);
                        while (endArea.get(end) != null) {
                            end = getRandInteger(1, 12);
                        }
                        endArea.put(end, 0);
                        dltNumberArray.add(end);
                    }
                }
                front = getRandInteger(1, 35);
                while (frontArea.get(front) != null) {
                    front = getRandInteger(1, 35);
                }
                frontArea.put(front, 0);
                dltNumberArray.add(front);
                if (i == 33) {
                    end = getRandInteger(1, 12);
                    endArea.put(end + 12, 0);
                    dltNumberArray.add(end);
                    while (endArea.get(end + 12) != null) {
                        end = getRandInteger(1, 12);
                    }
                    dltNumberArray.add(end);
                }
            }
            //不重复数字验证 可以放开以下代码行注释
            //Collections.sort(dltNumberArray);
            //System.out.println(dltNumberArray);
            for (int i = 0; i < 5; i++) {
                List<Integer> nums = dltNumberArray.subList(i * 7, 7 * (i + 1));
                List<Integer> fronts = nums.subList(0, 5);
                List<Integer> ends = nums.subList(5, 7);
                System.out.println("前区:" + fronts + "后区:" + ends);
            }
        }
        /**
         * 生成红球
         * @param count:数量
         * @param range:最大球数值
         * @return int[]
         */
        public static int[] generateRedBalls(int count, int range) {
            Random random = new Random();
            int[] arr = new int[count];
            boolean[] used = new boolean[range+1];
            for (int i = 0; i < count; i++) {
                int num = random.nextInt(range) + 1;
                while (used[num]) {
                    num = random.nextInt(range) + 1;
                }
                arr[i] = num;
                used[num] = true;
            }
            return arr;
        }
        /**
         * 生成蓝球
         * @param range:最大球数值
         * @return int
         */
        public static int generateBlueBall(int range) {
            Random random = new Random();
            return random.nextInt(range) + 1;
        }

    public static void main(String[] args) {
        System.out.println("福彩数字组合===============>>>>>>>");
        for (int i = 0; i < 4; i++) {
            generateFc3D();
        }

        System.out.println("快乐8选10随机数字组合===============>>>>>>>");
        for (int i = 0; i < 2; i++) {
            List<Integer> numbers = generateRandomNumbers();
            System.out.println("快乐8选10随机数字组合: " + numbers);
        }
        System.out.println("双色球===============>>>>>>>");
        for (int i = 0; i < 4; i++) {
            int[] redBalls = generateRedBalls(6, 33);
            int blueBall = generateBlueBall(16);
            Arrays.sort(redBalls);
            System.out.print("红球: ["+redBalls[0]+","+redBalls[1]+","+redBalls[2]+","+redBalls[3]+","+redBalls[4]+","+redBalls[5]+"]蓝球:["+blueBall+"]");
            System.out.println();
        }
        System.out.println("大乐透===============>>>>>>>");
        dltPolicy();
    }

}
 

  • 8
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值