三个奖盒,只有一个有奖,选一个后,排除掉一个空的,问换与不换的中奖概率

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条数据

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

文质木木

您的打赏是我更新优质作品的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值