import java.util.Random;
import java.util.Scanner;
public class lotteryDraw {
/*
* 问题 现在有三个完全相同的盒子,只有一个里边有奖品
* 随机抽取一个
* 然后主持人公布一个没有奖品的盒子
* 然后问,你换的中奖几率跟不换的中奖几率哪个大
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
Random random = new Random();
// 换盒中奖次数
int changeCount = 0;
// 不换盒中奖次数
int fChangeCount = 0;
// 中奖盒子初始化
int box = 0;
// 选择盒子初始化
int choose = 0;
// 测试次数
int count = 0;
// 统计是否中奖
boolean bool = true;
// 获取用户输入初始化
Scanner sc = new Scanner(System.in);
System.out.println("请输入自动选盒验证次数:");
int checkCount = sc.nextInt();
while (checkCount > 0) {
// 随机一个中奖盒子(1,2,3)
choose = random.nextInt(3) + 1;
// 随机选择一个盒子
box = random.nextInt(3) + 1;
/*
* 判断选择的盒子跟中奖的盒子是否一致
* 此时,不论是否一致,因为会排除掉一个空盒子
* 所以就可以认为中奖跟不中奖都为一半的几率
*/
if (box != choose) {
// 不一致时即为不中奖,如果换,则中奖
bool = false;
//统计换时中奖次数
changeCount++;
} else {
// 一致时即为中奖,如果换,则不中奖
bool = true;
//统计不换时中奖次数
fChangeCount++;
}
//验证次数,每验证一次即减少一次,直到验证完成
checkCount--;
//统计总次数
count++;
System.out.print("第" + count + "次,");
System.out.print("有奖品的盒子是:" + box + ",");
if (bool == true) {
System.out.println("选中了奖品");
} else {
System.out.println("选的盒子是" + choose + ",未选中奖品");
}
}
System.out.println();
System.out.println("不换时选中次数是:" + fChangeCount);
System.out.println("换时选中次数是:" + changeCount);
}
}
代码演示,我测试了20条数据