【杂记】【博弈】帮你排除了一个错误选项,你要更改你的决定吗?

  最近读博弈论相关的书,书中举了一个例子,如下:

  你出现在一个游戏节目里,主持人指出标有1、2、3的三道门给你,而且明确告诉你,其中两扇门背后是山羊,另一扇则有一辆名牌轿车,你要从三扇门里选择一个,并可以获得所选门后的奖品。当然你希望自己选中的是汽车而非山羊。既然是三选一,很清楚,你选中汽车的机会就是1/3。
  在没有任何信息帮助的情况下,你选了一个(比如1号门),这没有什么对与不对,完全是运气问题。但主持人并没有立刻打开1号门,而是打开了3号,门后出现的是一只羊。然后主持人问你:是否要改变主意选2号门?现在这就是个决策问题了:换还是不换?想一想吧!
  赛凡特女士的答案是你应该换,想法大致如下:如果你选了1号门,你就有三分之一的机会获得一辆轿车,但也有三分之二的机会——车子是在另外两扇门后。接着好心的主持人让你确定车子确实不在3号门后,不过1号门有车子的几率还是维持不变,而2号门后有车子的几率变成三分之二。实际上,3号门的几率转移到了2号门上,所以你当然应该改选。

  书中说应该换,给出的理由是“几率转移”,这个词就非常让人疑惑,"转移"是什么?怎么转移?

  我最开始也是认为不用换,觉得第二次做选择时,两扇门都是二分之一的概率中奖呀。百思不得其解时,看见书的评论有人做实验测试,两个人配合做了50次,得出不换门中奖的概率大概为0.44,但实验者也承认次数有限,误差较大。

  那不就到了展现代码魅力的时刻了吗?!~想一想也不复杂,我也不理解为什么作者说概率会为三分之二,那就实践测试一下吧,实践出真知嘛!

  用了十来分钟敲的,命名和算法方面可能欠妥,但总体跑起来没问题,足以解释这个问题了。代码如下:


public class Test {
   
	
	public static boolean chooseDoorNormal() {
   
		boolean isWin = false;
		// 1.随机指定礼物在哪扇门后面
		Map<Integer, Boolean> doors = creatDoors();
		// 2.随机选择一扇门
		int choose = (int) (Math.random() * 3) + 1;
		System.out.println("选择:第"+choose+"号门");
		// 3.查看中奖结果
		if (doors.get(choose)) {
   
			isWin = true;
		}
		return isWin;
	}
	
	public static boolean chooseDoorNoExchange() {
   
		boolean isWin = false;
		// 1.随机指定礼物在哪扇门后面
		Map<Integer, Boolean
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值