博弈论与逻辑(九)——万无一失的猜硬币方案

简介: 博弈论与逻辑(九)——万无一失的猜硬币方案

摄影:产品经理秋风香,蟹脚痒

时隔一年,我们的博弈论与逻辑专题继续更新。今天的话题是改进版的囚徒困境。

事情的起因是这样的,产品经理在上班的时候跟开发小哥一起打俄罗斯方块,结果被老板看到了。老板非常生气,于是把产品经理和开发小哥分别关到了两间房间里面。老板要求两人各投一枚硬币,然后猜对方是正面还是反面。如果两个人都猜错了,那么就要开除两人。只要有一个人猜对了,或者两个人都猜对了,那么两人就都不用受罚。

为了表示自己的宽宏大量,老板允许产品经理跟开发小哥提前沟通两分钟。

问:有没有什么办法,可以确保产品经理与开发小哥一定安全?

从概率来算,互相猜对方是正面还是反面,错误率都是50%,两个人同时猜错的概率是25%。虽然同时猜错的概率只有1/4,但是似乎没有办法保证一定能够至少有一个人对。如果不能提前沟通的话,确实这样也就到头了。

但好就好在,可以提前沟通。于是一个万无一失的办法就出现了。大家先把手机放在一边,考虑5分钟再往下看。

我们来考虑一下如果产品经理自己投的硬币是正面,她猜测开发小哥也是正面。如果开发小哥是正面,那么问题解决,开发小哥无论怎么猜都无所谓。

如果开发小哥是反面,那么此时决定权到了开发小哥这边。开发小哥如果猜测产品经理是正面,此时,开发小哥猜测的结果跟他自己的结果是相反的。

注意如果开发小哥是正面,他猜测产品经理是正反都无所谓,也就是说,他依然可以猜测产品经理的硬币跟自己投的相反。

于是,我们发现。产品经理自己的硬币是正面,她猜测开发的硬币也是正面。那么,开发无论自己的硬币是正面还是反面,他只要把自己硬币的结果反过来就行了。如果自己的硬币是正面,那么他猜产品经理是反面,虽然开发小哥猜错了,但是由于产品经理猜对了,所以两人无罪。如果开发小哥是反面,他猜测产品经理是正面。虽然产品经理猜错了,但是开发小哥猜对了。于是两人仍然无罪。

所以,我们得到了一个一般性的结论:产品经理跟开发小哥提前串通好,产品经理猜测的总是跟自己投出的结果相同,自己投的是正面,就猜测开发小哥也是正面;自己投出是反面,就猜测开发小哥也是反面。开发小哥猜测的总是跟自己投出的结果相反,自己投的是正面,就猜产品经理是反面;自己投出是反面,就猜产品经理是正面。这样一来,两人有且仅有一个人是正确的。但能确保一定不会受罚。

目录
相关文章
|
6月前
|
数据采集 监控 算法
应用动态规划算法解决可转债软件中的最优买卖时机问题
使用动态规划算法解决可转债市场的最佳买卖时机问题。定义状态dp[i][0](持有可转债的最大利润)和dp[i][1](不持有可转债的最大利润),通过状态转移方程更新状态,以max函数求解。提供的Python代码示例展示了如何计算最大利润。将此算法集成到软件中,结合网络爬虫获取实时价格,自动计算并提供买卖建议,助力投资者做出更明智的决策。
130 0
|
6月前
|
C++
逻辑智力题
二进制问题 1、1000瓶药水找毒药(一) 问题: 有 1000 个一模一样的瓶子,其中有 999 瓶是普通的水,有一瓶是毒药。任何喝下毒药的生物都会在一星期之后死亡。现在,你只有 10 只小白鼠和一星期的时间,如何检验出哪个瓶子里有毒药? 解析: 二进制思想:首先一共有1000瓶药水,给每瓶药水编号:1,2,3,4,5,6...1000,2的10次方是1024,刚好大于1000, 也就是说,1000瓶药水可以使用10位二进制数来表示。 如下: 毒药在第一瓶:00 0000 0001 毒药在第二瓶:00 0000 0010 毒药在第三瓶:00 0000 0100 ....... 毒药在第999
|
12月前
|
算法 程序员
游戏中的常见概率设计分析
游戏中的常见概率设计分析
|
算法
陶哲轩攻克60年几何学难题!发现「周期性密铺猜想」在高维空间反例
陶哲轩攻克60年几何学难题!发现「周期性密铺猜想」在高维空间反例
177 0
四道好题分享(看似简单,但是棘手)
四道好题分享(看似简单,但是棘手)
102 0
|
算法 安全
当我们谈论算法我们在谈论什么:由疫情核酸检测想到的分治算法(Divide-and-Conquer)
解释一下病毒核酸检测的原理,检测人员提取小区居民的鼻腔拭子或者咽拭子(就是用一根棉签在咽喉处或者鼻腔深处刮取一些分泌物),然后将该棉签放入试剂盒,以病毒独特的基因序列检测靶标,通过PCR扩增,使我们选择的这段靶标DNA序列指数级增加,每一个扩增出来的DNA序列,都可与我们预先加入的一段荧光标记探针结合,产生荧光信号,扩增出来的靶基因越多,累计的荧光信号就越强。说白了就是试剂盒荧光反映变色越强烈,说明病毒体量和活性越强。
当我们谈论算法我们在谈论什么:由疫情核酸检测想到的分治算法(Divide-and-Conquer)
乱序洗牌怎么证明洗的够乱
几个月前因为某个需求,需要写一个乱序函数,于是乎就撸了一个,然而撸完又开始思考,怎么证明结果够不够乱呢,接下来我们看下。
|
JavaScript
小明特别喜欢打扑克牌,除了喜欢斗地主和德州扑克之外,还喜欢一种叫桥牌的游戏,桥牌的具体规则相当复杂,有叫牌、打牌和计分三个阶段,还有不断变化的局况,局况可能影响叫牌打牌策略。但是小明暂时不关心这一些,
小明特别喜欢打扑克牌,除了喜欢斗地主和德州扑克之外,还喜欢一种叫桥牌的游戏,桥牌的具体规则相当复杂,有叫牌、打牌和计分三个阶段,还有不断变化的局况,局况可能影响叫牌打牌策略。但是小明暂时不关心这一些,
354 0
小明特别喜欢打扑克牌,除了喜欢斗地主和德州扑克之外,还喜欢一种叫桥牌的游戏,桥牌的具体规则相当复杂,有叫牌、打牌和计分三个阶段,还有不断变化的局况,局况可能影响叫牌打牌策略。但是小明暂时不关心这一些,
|
算法 Java API
【算法攻坚】遇到第一道“困难”级别的题目
【算法攻坚】遇到第一道“困难”级别的题目
176 0
【算法攻坚】遇到第一道“困难”级别的题目
动态规划练习——寻找业务限制的尝试模型,洗咖啡
动态规划练习——寻找业务限制的尝试模型,洗咖啡