zoukankan      html  css  js  c++  java
  • 兄弟分钱、海盗分赃

    类似的反推问题。

    问题描述:

    1、妈妈有2000元,要分给她的2个孩子。由哥哥先提出分钱的方式,如果弟弟同意,那么就这么分。但如果弟弟不同意,妈妈会没收1000元,由弟弟提出剩下 1000元的分钱方式,这时如果哥哥同意了,就分掉这剩下的1000元。但如果哥哥也不同意,妈妈会把剩下的1000元也拿走,然后分别只给他们每人100元。
    问:如果你是哥哥,你会提出什么样的分钱方式,使你有可能得到最多的钱?(最小单位1元)

    2、有5个海盗,按照等级从5到1排列。最大的海盗有权提议他们如何分享100枚金币。但其他人要对此表决,如果多数(所有人中的多数)反对,那他就会被杀死。他应该提出怎样的方案,既让自己拿到尽可能多的金币又不会被杀死?

    ————————————————————————————————————————————————————————————

    答案:

    1、设想一下,如果哥哥分钱时知道弟弟分钱时弟弟能够分到的最多钱,那么哥哥只需要在弟弟分得的最多钱数上加1,那么弟弟就会同意哥哥的分钱方式。现在的问题就是怎么得到利益竞争者的心理价位了? 所以,我们要能用反推的方式。

       最后,哥哥:100  弟弟:100

       弟弟分钱时,哥哥:101  弟弟:899

       哥哥分钱时,弟弟:900  哥哥:1100

    所以,最后结果就是1100元

    2、5级海盗会不会被杀死,取决于5级海盗死后其他海盗是否会获得更多的利益。如果可以获得更多的利益,则肯定会反对,如果会获得更少的利益,则肯定会支持,如果利益没有变化,则反对或支持都可以。
    如果5级海盗死了,则有4级海盗分配,4级海盗面临同样的问题,需要看自己死后的利益分配变化。然后是3级海盗,2级海盗。
    2级海盗无论提出什么方案,都不会有多数人反对(自己支持,另一个人反对不能构成多数反对)。所以2级海盗肯定会提出100,0的分配方案,自己独享所有金币。
    猜到2级海盗的分配方案后,3级海盗会提出99,0,1的分配方案。这样1级海盗因获得了比2级海盗方案中更多的金币,所以会支持3级海盗的方案。
    猜到3级海盗的分配方案后,4级海盗会提出99,0,1,0的分配方案。这样2级海盗获得了比3级海盗方案中更多的金币,所以会支持4级海盗的方案。
    猜到4级海盗的分配方案后,5级海盗会提出98,0,1,0,1的分配方案。这样1级海盗和3级海盗获得了比4级海盗方案中更多的金币,所以会支持5级海盗的方案。

    所以,5级海盗提出的分配方案为98,0,1,0,1.

    重点:要找到反推法的起始状态。

  • 相关阅读:
    C语言inline函数(转)
    C++ 输入ctrl+z 不能再使用cin的问题
    VMware无法识别USB设备
    python manage.py 命令
    求二叉树的最小深度
    Vim的分屏功能(转)
    一些Python的惯用法和小技巧:Pythonic
    Docker(十五)-Docker的数据管理(volume/bind mount/tmpfs)
    Docker(十四)-Docker四种网络模式
    Docker(十三)-Docker save and load镜像保存
  • 原文地址:https://www.cnblogs.com/xuxu8511/p/2432788.html
Copyright © 2011-2022 走看看