双色球6+1Java模拟

# 程序运行结果:
一等奖: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);
}

@Override
public 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;
}

}

···
感谢支持

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值