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