一个有意思的博弈问题

原创 2007年09月18日 11:53:00
翻书看到一道挺有意思的博弈问题,据说是冯.诺伊曼提出来的。

    "三个人持枪决斗。A的枪法最差,成功率为1/3;B的成功率稍好,为2/3;C的枪法最准,每击必中。决斗规则如下:三个人轮流开枪,枪法最差的A有最高的开枪优先级,B次之,C最低。
   
    假设你是A,采取什么样的策略,才能使自己活命的概率最大?"

    这题不仔细考虑的话,凭直觉定会选择向C开枪,因为C的威胁最大!如果给C开枪的机会的话,自己就太危险了。

    然而且慢。假使C有开枪的机会,C会如何行动?
因为C知道自己一定能打死目标它一定会选择向A、B中未死的、对自己威胁最大的人下手,,这样会将自己开第二枪的机会概率提至最高。这意味着,只要B活着,C就不会考虑向A下手。

    因此,A应该选择让B活着,"天塌下来有高个子顶着";向B开枪是不明智的!

    所以,A选择向C开枪,岂不是很合理的选择?

    我们再从B的角度考虑一下。

    同样,试着从B的角度考虑问题。
假设B有机会开枪的话,如果C活着,B一定会选择向C开枪,因为B也知道C的想法——C一定会从A、B中优先选择B。所以 B如果向A开枪的话,死亡概率为1;而如果向C开枪的话,死亡概率为1/3。如果A之前居然选择了向C开枪并很走运的打死C的话,那么B只有选择将枪口对 准A了。
   
    所以,形势现在明了了,对于A来说,最佳选择是一方面要保证B活着为自己顶着C,另一方面是要C活着让B无暇考虑自己。

    所以A的最佳选择是,放空枪,让B、C均活着,这样B一定会向C射击,而无论B的射击结果如何,A有100%的机会开第二枪,对手或是B,或是C。

    令p(x)代表A选择向x射击的情况下有机会开第二枪的概率,x=B,C,NULL

    则
p(NULL)=1

    而无论A选择向B还是向C开枪,他有开第二枪的机会都小于100%,这个可以很简单的计算出来。

   
    p(B)=(1/3)*0 +(2/3)=2/3
    p(C)=(1/3)*(1/3)+2/3=7/9

   
    想清楚这个问题后,不妨试着将这个问题联系实际一下。在真实世界中,当然不会有这种骑士精神十足的"礼让弱者先动手"的规则,然而强者由于有自信保证自己的安全而不会盲目的攻击,而弱者由于缺乏安全感往往会选择“先下手为强”。所以,这个游戏规则和现实世界在结果上还是很相似的:总是弱者先动手的可能性大。

    那么,如果我是最强者C,想要干掉A、B,有什么好策略呢?我可以故意示弱,让A、B认为我是最弱者而且我理智的选择了“放空枪”,这样就可以诱使A、B对掐,而在对掐结果出来后,我再暴露自己的真实实力,一击必中的干掉A、B之中的胜者,从而以最小代价、最大概率的取得最终胜利。

    这个计策是不是很阴险?
   

ACM博弈学习小结

1.ACM博弈题,不会的时候觉得难于上青天,会的时候觉得没有比博弈更水的题了; 博弈题看到的第一眼觉得是难题,代码敲完顿觉水题。你可能花半个小时去找规律,然后仅花2分钟敲代码。 2.博弈是单人游戏,也...
  • tomorrowtodie
  • tomorrowtodie
  • 2016-08-10 00:54:52
  • 1773

纸牌博弈问题

题目: 题目:有一个整型数组A,代表数值不同的纸牌排成一条线。玩家a和玩家b依次拿走每张纸牌,规定玩家a先拿,玩家b后拿, 但是每个玩家每次只能拿走最左或最右的纸牌,玩家a和玩家b都绝顶聪明,他们总会...
  • qwe_lingkun
  • qwe_lingkun
  • 2015-08-05 22:40:55
  • 1868

排成一条线的纸牌博弈问题

#include #include #include #include using namespace std; int post_min(int *arr, int l, int r); int...
  • taoyanqi8932
  • taoyanqi8932
  • 2016-08-12 13:16:02
  • 642

一个有意思的博弈

题目描述有两个人玩游戏,轮流取物品。每个物品对不同的人都会存在不同的价值。对手使用的贪心原则,也就是说在每一步对手都会选择对他价格最大的物品。当存在多个物品价格相同的时候,对手会随机选择一个物品。这个...
  • aaron_1996
  • aaron_1996
  • 2016-12-10 21:32:39
  • 222

各种博弈问题

(一)巴什博奕(Bash Game):只有一堆n个物品,两个人轮流从这堆物品中取物,规 定每次至少取一个,最多取m个。最后取光者得胜。     显然,如果n=m+1,那么由于一次最多只能取m个,所以...
  • qq_26437925
  • qq_26437925
  • 2016-08-02 11:09:10
  • 1059

博弈问题之三大博弈

一.巴什博奕(Bash Game): 首先我们来玩一个比较古老的报数游戏。A和B一起报数,每个人每次最少报一个,最多报4个。轮流报数,看谁先报到30. 如果不知道巴什博弈的可能会觉得这个是个有运气...
  • Roosevelty
  • Roosevelty
  • 2015-02-19 09:42:37
  • 690

三种经典博弈问题

有一种很有意思的游戏,就是有物体若干堆,可以是火柴棍或是围棋子等等均可。两个人轮流从堆中取物体若干,规定最后取光物体者取胜。这是我国民间很古老的一个游戏,别看这游戏极其简单,却蕴含着深刻的数学原理。下...
  • Han_kin
  • Han_kin
  • 2015-04-28 15:03:59
  • 878

蓝桥杯——博弈论问题

前言:在编程问题中,取球游戏的一般解题模板 伪代码:    f(局面x){//——>胜(true)负(false)          边界条件处理。。。。。          For(我所有...
  • u012535132
  • u012535132
  • 2015-04-24 23:04:16
  • 907

ACM常见组合博弈游戏

这两天认识了几个组合游戏的基础模型,希望自己能更新下去。。Ferguson游戏Description Initial 有两个盒子,一个装有 m 颗糖,一个装有 n 颗糖,表示为 (m, n) . St...
  • qq_15714857
  • qq_15714857
  • 2015-11-07 00:03:40
  • 2253

动态规划-排成一条线的纸牌博弈问题

【题目】 给定一个整型数组arr,代表数值不同的纸牌排成一条线。玩家A和玩家B依次拿走每张纸牌,规定玩家A先拿,玩家B后拿,但是每个玩家每次只能拿走最左或最右的纸牌,玩家A和玩家B都绝顶聪明。请返回...
  • yutianxin123
  • yutianxin123
  • 2016-10-12 15:05:33
  • 592
收藏助手
不良信息举报
您举报文章:一个有意思的博弈问题
举报原因:
原因补充:

(最多只允许输入30个字)