zoukankan      html  css  js  c++  java
  • 海盗如何分金才能让他获得最多的金子

    题目描述:

    5 名海盗抢得了窖藏的 100 块金子,他们打算瓜分这些战利品。这是一些讲民主的海盗(当然是他们自己特有的民主),他们的习惯是按下面的方式进行分配:最厉害的一名海盗提出分配方案,然后所有的海盗(包括提出方案者本人)就此方案进行表决。如果 50% 或更多的海盗赞同此方案,此方案就获得通过并据此分配战利品。否则提出方案的海盗将被扔到海里,然后下一名最厉害的海盗又重复上述过程。
    所有的海盗都乐于看到他们的一位同伙被扔进海里,不过,如果让他们选择的话,那么他们还是宁可只得一笔现金,也不愿意自己被扔到海里。所有的海盗都是有理性的,而且知道其他的海盗也是有理性的。此外,没有两名海盗是同等厉害的——这些海盗按照完全由上到下的等级排好了顺序,并且每个人都清楚自己和其他所有人的等级。这些金块不能再分,也不允许几名海盗共有金子,因为任何海盗都不相信他的同伙会遵守关于共享金子的安排。这是一伙每人都只为自己打算的海盗。
    最凶的一名海盗应当提出什么样的分配方案才能使他获得最多的金子呢?

    分析与解答:

    如果轮到第四个海盗分配:100,0
    轮到第三个:99,0,1
    轮到第二个:99,0,1,0
    轮到第一个:98,0,1,0,1,这就是第一个海盗的最佳方案。
    可以从后往前推测每次最优的方案,从而确定第一种方案就是最好的。
    1)当只剩两个海盗分金时,因为只要有 50% 或以上的支持率则方案通过,所以第四个海盗和第五个海盗分金时,无论第五个海盗是否支持自己,第四个海盗都可以给自己分配 100 块金子。
    2)当只剩三个海盗分金时,第三个海盗分金的方案,除了自己的支持外,还需要一个海盗的支持,否则方案不通过。所以,如果第三个海盗想要拿最多金子,最好的方案就是让第五个海盗得到金子来支持他,因为第四个海盗可以通过否定第三个海盗的方案实现自己的利益最大化。所以,第三个海盗得块 99 块金子,而第五个海盗得 1 块金子的方案是最好的。
    3)当只剩下四个海盗分金时,第二个海盗的方案,只需要一个海盗支持他即可通过方案。由 2)的分析知道,要第四个海盗支持自己是最有利的,所以可以得到最好的方案是:第二个海盗 99 块金子,第四个海盗 1 块金子的方案。
    4)最初的情况,5 个海盗分金,第一个海盗必须要其余 2 名海盗支持自己,它才有可能得到最多的金子。通过 3)的分析知道,分配金子给第三个海盗和第五个海盗 1 块金子,让它们支持自己是最优的方案。

  • 相关阅读:
    8102Java的学习呼声有所下降,2019年还值得学习吗
    大数据开发面试题详解:Hadoop的运行原理
    总结:java大神的自学路线
    大数据开发工程师必看书籍
    java主要编程工具
    bzoj3791 作业
    bzoj3750 [POI2015]Pieczęć
    bzoj1143 [CTSC2008]祭祀river
    bzoj2718 [Violet 4]毕业旅行
    poj3237 Tree
  • 原文地址:https://www.cnblogs.com/hardy-wang/p/13068825.html
Copyright © 2011-2022 走看看