双色球6+1Java模拟

来源:互联网 发布:mysql端口的作用 编辑:程序博客网 时间:2024/06/18 06:38

# 程序运行结果:
一等奖:0次
二等奖:0次
三等奖:2次
四等奖:108次
五等奖:3720次
六等奖:301106次
感谢购买:9695064次
累计购买:10000000次
代码:
···
package zj.apps.doll;

import java.util.Collection;
import java.util.Collections;
import java.util.Vector;

import eq.util.MyArray;

public class DoubleColorBall {
private static final int total = 10000000;
static final int MAX = 33;
private static final String[] RANK = “感谢购买 一等奖 二等奖 三等奖 四等奖 五等奖 六等奖”.split(“\s+”);
static Vector balls = new Vector<>();
static Integer sBlueBall;
static Vector sRedBalls = new Vector<>();

static {    for (int i = 1; i <= MAX; i++)        balls.add(i);    Collections.shuffle(balls);    sBlueBall = balls.get(0);    sRedBalls.addAll(balls.subList(1, 6));    Collections.sort(sRedBalls);}Integer blueBall;Vector<Integer> redBalls = new Vector<>();public DoubleColorBall() {    Collections.shuffle(balls);    blueBall = balls.get(0);    redBalls.addAll(balls.subList(1, 6));    Collections.sort(redBalls);}@Overridepublic String toString() {    StringBuffer buffer = new StringBuffer("");    for (Integer i : redBalls)        if (i < 10)            buffer.append(" (0" + i + ") ");        else            buffer.append(" (" + i + ") ");    if (blueBall < 10)        buffer.append("[0" + blueBall + "]");    else        buffer.append("[" + blueBall + "]");    return buffer.toString();}public static String getTopBouns() {    StringBuffer buffer = new StringBuffer("");    for (Integer i : sRedBalls)        if (i < 10)            buffer.append(" (0" + i + ") ");        else            buffer.append(" (" + i + ") ");    if (sBlueBall < 10)        buffer.append("[0" + sBlueBall + "]");    else        buffer.append("[" + sBlueBall + "]");    return buffer.toString();}/** * @param args */public static void main(String[] args) {    System.out.println("双色球模拟程序(6+1)~");    System.out.println(getTopBouns());    System.out.println("--------------------------------");    int f[] = new int[7];    for (int i = 0; i < total; i++) {        DoubleColorBall my = new DoubleColorBall();        int rank=my.judge();        f[rank]++;        if(rank>=1&&rank<=4)            System.out.println(my+RANK[rank]);    }    for(int i=1;i<=7;i++)    {        int j=(i)%7;        System.out.println(RANK[j]+":"+f[j]+"次");    }    System.out.println("累计购买:"+total+"次");}private int judge() {    if (check(6, 1))        return 1;    else if (check(6, 0))        return 2;    else if (check(5, 1))        return 3;    else if (check(5, 0) || check(4, 1))        return 4;    else if (check(4, 0) || check(3, 1))        return 5;    else if (check(2, 1) || check(1, 1) || check(0, 1))        return 6;    else        return 0;}private boolean check(int rr, int bb) {    int red = 0, blue = 0;    if (blueBall.equals(sBlueBall))        blue++;    for (int i = 0; i < redBalls.size(); i++)        if (redBalls.get(i).equals(sRedBalls.get(i)))            red++;    return red == rr && blue == bb;}

}

···
感谢支持

原创粉丝点击