首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >数学救命:决斗中的概率问题!

数学救命:决斗中的概率问题!

作者头像
大数据文摘
发布于 2018-05-21 03:10:24
发布于 2018-05-21 03:10:24
2.7K0
举报
文章被收录于专栏:大数据文摘大数据文摘

大数据文摘作品,欢迎个人转发朋友圈;其他机构、自媒体转载,务必后台留言,申请授权。

摘自:墨绿万精油的博客

网址:http://blog.sina.com.cn/u/2558582594

三人决斗问题在网上流传很久了,甚至有人已经把它写进书里。这个大家熟悉的题目我本来没有想把它放到我的微博上。可是,上周在@数学文化 的微博上看见他推荐一个两人决斗问题,我觉得过于简单,于是把这个三人决斗问题拿出来作比较。题目出来一个星期了,想写一个答案算交差,没想到越写越长,140字的微博不够,于是干脆把它加长成一篇博客文章。

先说那个两人决斗问题。说是两个人搞“俄罗斯轮盘赌”,一个可以装六颗子弹的手枪里装了一颗子弹。随机转盘以后两个人轮流用枪对准对方额头射击。每次打枪后重新转盘。问是先开枪划算还是后开枪划算,并算先开枪和后开枪的存活率。因为每次打枪后重新转盘。所以想都不用想肯定是先开枪的划算。至于先后的存活率,后开枪的人要在第一枪没有被打死的情况下(概率是5/6)才能达到与先开枪的人相同的状态。所以,后开枪的人的存活率是先开枪的人的存活率的5/6 。再加上两人的存活率之和是一,可以得出先开枪与后开枪的存活率分别为6/11和5/11 。所以我说这个问题过于简单。

其实,上面那个题篡改了“俄罗斯轮盘赌”。真正的“俄罗斯轮盘赌”是随机转盘后对准自己额头打,而且每次打完不再转盘,自动转进下一个子弹位。在这种情况下问先开枪划算还是后开枪划算就是一个很好的条件概率题。第一枪被打死的概率是1/6 。第二枪被打死的概率是5/6×1/5,还是1/6 ,以此类推。当然如果对题目理解的很清楚,根本就不需要算。第K枪死的概率就是子弹在第K个弹腔的概率,因为是随机的,每个位置的概率都是1/6,所以先打后打都一样。

三人的情况就要有意思得多。从两人到三人有点像从二体运动到三体运动。因为二体运动必须是平面运动,简单解一解F=M*a 就可以有结果。三体问题要复杂得多,根本没有解析解。牛顿庞加莱这些大家都没有办法。当然,这个三人决斗问题只是比两人决斗问题麻烦一点,比三体问题那是要简单多了。

先叙述一下三人决斗问题。A,B, C 三人决斗。已知A的枪法奇准,百发百中。B次之,三枪命中两枪。C最差,三枪只能打中一枪。决斗的方式是三人轮流开枪,每次只能开一枪,可以随便选向谁开枪。为公平起见,他们决定让C先开枪。然后是B(如果还活着),最后是A(如果还活着)。如果一轮结束后还有超过一人活着,再按CBA循环。问:在上面给出的条件下,每人的最佳策略是什么?如果大家都采用最佳策略,每人的存活率是多少?

首先,在三人都在的情况下,开枪的人应该打另外两人中命中率高的,因为如果他打中就轮到剩下的那个人打他,当然希望命中率不高的人剩下。所以A, B肯定互射,而最差的C被当着老弱病残保护起来。那么C是不是该打A呢?如果他打中A,那么该B来打他。他知道有三人存在时A,B都不会来打他,打掉一人反倒对他不利。所以他的最佳策略是放空枪。等A,B相互之间干掉一人后轮他先打,不管命中率如何差,两人中先开枪总是划算的。这就是所谓鹬蚌相争,渔翁得利。

有了这个策略以后,算存活率就是很直接的概率题了。在A的命中率是1 (100%) 情况下,B和C的命中率对每人的存活率的影响很不一样。为了求一个通式,我们假设B的命中率是b,C的命中率是c 。按题目假设,我们有1 > b > c >0。通过一些推导,我们可以得出A,B,C的存活率分别为:

A:(1-c)*(1-b)

B: b-b*c/(b+c-b*c)

C: c+b*c*(1/(b+c-b*c)-1)

为了不把这篇文章变成数学论文,这个解的具体推导就留成作业好了。

我们最初叙述的这道题就是当b= 2/3,c=1/3 的特例。在这个情形下,我们有A,B,C的存活率分别是:2/9,8/21,25/63 。

当然,这道题有趣的是在b,c取各种值所得的各种结果。我做了三个A,B,C存活率的图如下。下图中,b分别为2/3,1/2,1/3,横坐标是C的命中率,从0到相应的b。Y坐标是存活率。

可以看到在b=2/3时,虽然A的命中率最高,但他的存活率(红色)一直在B的存活率(蓝色)下面。甚至当c比0.2多一点以后,C的存活率(绿色)也比A高。这个图告诉我们在制度不好的时候,优秀人物并不一定混得更好。所谓"枪打出头鸟",“出头的椽子先烂”,“木秀于林,风必摧之”都是同一个机制。坏制度不能保护他们这些出头鸟。

不过,要想比出头鸟混得更好自己的本事也不能太差。当b=1/2(或以下)时,蓝线一直在红线之下。也就是说即使有制度保护,B也永远不会比A混得更好。这就是通常所说的稀泥糊不上墙。阿斗当不好皇帝,虽然有刘皇叔托孤,诸葛亮撑腰。

三个图都有一个共性,那就是当C的命中率接近B的命中率一半以后,C的存活率就比B还好。这这也是一个常见现象,中等水平的人常吃亏。因为他们本事不够,自己上不去,又没有坏到需要制度照顾,最后的结果就是吃亏。美国这边现实的例子就是孩子上大学的学费问题。真正的富人是不在乎这点钱的。而收入不够的人可以申请资助,只有中产阶级,学费压力很大,却不能申请资助。

C的存活率甚至有时候比A还高。不过,当b更小的时候(比如1/3),红线就一直在蓝,绿之上了。这就是为什么许多统治阶层要搞愚民政策。下面的人水平太差以后,无论怎么钻空子(比如开空枪),上面的人都总是有优势。

受过数学训练的人读到这里,想要问的一个很自然的问题就是,什么时候A,B,C的存活率相等(都等于1/3)。有了前面的公式,我们不难算出,当c=(5-√7)/9,b=(√7-1)/3 时,A,B,C的存活率都等于1/3。(顺便说一下,如果找不到正确方法,要求出这个平衡点需要解一个四次方程。但如果找到正确方法,只需解一个二次方程就可以了,还是留成习题吧)。

这个平衡点表面看起来有点象三权鼎立,但这种表面上的相等其实很不公平。比C优秀差不多4倍的A在这个规则下得到的结果只不过与C相同而已。有点象社会主义。从前的大学生毕业,不管好坏一律都是56块半的工资。这种制度不能鼓励优秀人士,对社会的整体进步没有好处。

学佛的人常说一滴水珠看世界,所谓“滴水藏海”。我用这个三人决斗的趣味题目来看社会现象,搞笑之作,希望有人能欣赏。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2015-06-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大数据文摘 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Power BI: 理解上下文转换
Calculate是目前DAX语言中最重要、最有用同时也是最复杂的函数,值得单独成章进行介绍。涉及Calculate函数的内容很多,这里介绍的是行上下文转换。
Exploring
2023/08/17
1.5K0
Power BI: 理解上下文转换
Power BI: 理解SUMMARIZE
SUMMARIZE执行两个操作:按列分组和添加值列。使用SUMMARIZE对表进行分组是一个安全的操作,而使用SUMMARIZE添加新的列可能会导致难以调试的意外结果。
Exploring
2023/08/17
1.2K0
Power BI: 理解SUMMARIZE
2.8 PowerBI数据建模-理解上下文(计值环境)
加入 PowerBI自己学 知识星球 可以:下载源文件,边学边练;遇到问题,提问交流,有问必答。
PowerBI自己学_轻松
2025/02/24
2120
2.8 PowerBI数据建模-理解上下文(计值环境)
一秒钟一句话生成 PowerBI 数据字典并与同事分享
很多伙伴问罗叔是否可以给小白直接直接操作的技巧,例如:直接点一个按钮,直接写一个公式,直接解决一个问题的。
BI佐罗
2022/07/07
2.8K0
一秒钟一句话生成 PowerBI 数据字典并与同事分享
函数周期表丨筛选丨表丨VALUES
VALUES函数,隶属于“筛选”类函数。当参数为列时,返回结果会去除重复值,保留空项;当参数为表时,结果不会进行去重复操作。
PowerBI丨白茶
2021/08/31
1K0
函数周期表丨筛选丨表丨VALUES
Extreme DAX-第4章 上下文和筛选
编写 DAX 公式时要掌握的核心概念是上下文。DAX 作为一门动态数据分析语言,与 Excel 函数、SQL 查询 和 Power Query 脚本有着根本不同的原因就在于上下文的概念。以上所述的所有其他语言的公式只会在数据发生变化时才会返回不同的结果(除了一些例外情况,例如使用参数时),但是单个 DAX 公式就可以同时提供多个不同的结果,具体取决于您使用它的位置和方式,也就是:上下文。
陈学谦
2022/05/24
6.2K1
Extreme DAX-第4章 上下文和筛选
2.10 PowerBI数据建模-核心函数CALCULATE
加入 PowerBI自己学 知识星球 可以:下载源文件,边学边练;遇到问题,提问交流,有问必答。
PowerBI自己学_轻松
2025/02/24
1820
2.10 PowerBI数据建模-核心函数CALCULATE
calculate函数更改筛选器,到底是怎么回事儿?|DAX原理
导语:备,拷,转,调,叠,算,我一遍又一遍地重复这6个字,只为让大家看到一个有calculate函数的公式,尤其是当其结果和自己想的不一样时,可以条件反射式地把这6个步骤应用进去——这是我这一年多来对DAX最重要的总结,没有之一!
大海Power
2024/01/17
5820
calculate函数更改筛选器,到底是怎么回事儿?|DAX原理
Power BI: 对事件进行排序
文章背景:最近在学习DAX权威指南的第16章,DAX中的高级计算。其中提到了一种相当常见的计算模式:对事件序列进行编号,以便查找第一个、最后一个和上一个事件。
Exploring
2023/09/24
4600
Power BI: 对事件进行排序
Power BI: 理解ALLSELECTED函数和影子筛选上下文
ALLSELECTED函数是唯一一个使用影子筛选上下文的DAX函数。我们首先研究ALLSELECTED的行为,然后介绍影子筛选上下文。
Exploring
2023/09/10
2.2K0
Power BI: 理解ALLSELECTED函数和影子筛选上下文
PowerBI公式-Filter函数
度量值工作的两大核心步骤是筛选和计算,筛选函数是制定计算的范围,聚合函数的用途是计算。如果你能够领悟第一阶段学习的筛选和聚合共10个函数以及上下文的概念,你就掌握了度量值和DAX的精髓。左手漏斗筛选器,右手智能计算器,随心所欲的设计你的筛选和计算,Master of Power BI指日可待。这一节我们就来学习最强大的筛选函数Filter。
公众号PowerBI大师
2019/08/07
7K0
PowerBI公式-Filter函数
上下文系列小讲堂(回顾1)
创建行上下文 1. 计算列:引用原有列,通过计算生成新列 2. 迭代函数 1) 聚合函数+X结尾:SumX,AverageX,CountX,CountaX,MaxX,MinX 2) 其他迭代函数:Filter,RankX,SelectColumns,AddColumns,ConcatenateX,FirstNONBlank / LastNONBlank,FirstNONBlankValue / LastNONBlankValue,ProductX
公众号PowerBI大师
2020/08/11
1.1K0
上下文系列小讲堂(回顾1)
PowerBI DAX 新函数 OFFSET
如果我们希望在透视表的另一列可以获取前一列的上一项的值,该怎么做呢?这个问题在以前需要做定位。而有了新的函数 OFFSET 可以简化这个过程。如下:
BI佐罗
2022/12/18
2.1K0
PowerBI DAX 新函数 OFFSET
PowerBI 职业专题-HR-在职与离职
HR 使用Excel已经可以统计很多内容了,但 BI 的特点,大家知道是 动态 的。本文讲解如何在 PowerBI 中实现 HR 在离职人数的计算。
BI佐罗
2019/09/29
3K0
PowerBI 职业专题-HR-在职与离职
Power BI:优化筛选条件
1 定义优化策略2 优化DAX表达式中的瓶颈2.1 优化筛选条件2.1.1 优化前2.1.2 优化后2.1.3 小结
Exploring
2023/11/27
5200
Power BI:优化筛选条件
DAX中的基础表函数
👆点击“博文视点Broadview”,获取更多书讯 本文将介绍DAX中的基础表函数。 表函数是DAX中的一种常规函数,它返回的结果不是一个标量值,而是一个表。当需要编写DAX查询和迭代表的高级计算时,表函数非常有用。本文会介绍相关的计算示例。 本文的目标是介绍表函数的概念,而并非提供所有DAX表函数的详细说明。 《DAX权威指南》一书的第12章和第13章中介绍了更多的表函数。本文将解释DAX中最常见和重要的表函数的作用,以及如何在常见的场景中,包括标量表达式中使用它们。 01 表函数介绍 到目前为止,你
博文视点Broadview
2023/05/06
3.2K0
DAX中的基础表函数
Power BI 计算组理解(一)
有时为了节省页面空间,让当前报表提供更多的信息,经常会有这样的设计,即提供一些选项给报表使用人,当报表使用人选定某个项目时,当前报表才显示该项目的信息,如下:
公众号PowerBI大师
2021/05/11
2.5K0
Power BI 计算组理解(一)
【DAX 系列】总计行问题终极解决方案
这是一个老生常谈的问题,本文将给你终极解决方案,并带您重新理解一种模式,从入门级到专业级,均有您需要的营养。
BI佐罗
2020/02/17
3.9K0
【DAX 系列】总计行问题终极解决方案
《DAX进阶指南》-第6章 动态可视化
开始本章翻译时,是5月初。当时并不知道平平无奇的5月Power BI会带来一大波更新,尤其是大杀器“字段参数”(字段参数参考文章)。
陈学谦
2022/10/30
6.2K0
《DAX进阶指南》-第6章 动态可视化
上下文系列小讲堂(三)
先来建个度量值“总销量 = SUM ( '销售表'[销量] )”,把它扔进“条形图”
公众号PowerBI大师
2020/08/11
9090
上下文系列小讲堂(三)
相关推荐
Power BI: 理解上下文转换
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档