zoukankan      html  css  js  c++  java
  • 海盗分宝石逻辑题目

    问题描述: 
    5个海盗抢到了100颗宝石,每一颗都一样的大小和价值连城。 
      他们决定这么分: 
      1。抽签决定自己的号码(1,2,3,4,5)  
      2。首先,由1号提出分配方案,然后大家5人进行表决,当且仅当超过半数的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼。  
     3。如果1号死后,再由2号提出分配方案,然后大家4人进行表决,当且仅当超过半数的人同意时,按照他的提案进行分配,否则将被扔入大海喂鲨鱼。 
      4。以次类推。 
       
      条件: 
      每个海盗都是很聪明的人,都能很理智的判断得失,从而做出选择。 
       
      问题: 
      第一个海盗提出怎样的分配方案才能够使自己的收益最大化?
    设五个人分别是A、B、C、D、E,A首先来分
    用倒推的方法
    1 D来分配,一定不会得到E的同意,因为只要E不同意,同意的票数就不会超过50%,然后D喂鲨鱼,E独享100颗,所以D一定不希望自己来分。D分配意味着喂鲨鱼的结局。
    2 C来分配,D一定会同意,所以不用分给D和E。因为D如果不同意,E一定不同意,C被喂给鲨鱼,这样又出现第一种情况了。保命要紧,D宁可不要钻石了。故C分配时可以得到全部100颗。
    3 B来分配,C不会同意,因为把B喂鲨鱼后回到第二种情况C会独占,所以B必须得到D、E的同意,只要分给D一个,E一个,D和E就会同意,若D和E不同意,则由C分配时一个也得不到。所以B分配时可以得到98颗,D得到一颗,E得到一颗,C0颗。
    4 A来进行分配,B一定不会同意,因为不可能给B98颗以上,所以要得到C、D或者C、E的同意,可以给C一个,D两个,让C、E同意;也可以给C一个E两个,来让C、E同意
    
    故最终A的分配结果是
       A97 C1 D2
    或 A97 C1 E2
    
    不知道对不对,大家讨论一下吧
  • 相关阅读:
    可能是把 ZooKeeper 概念讲的最清楚的一篇文章
    Tomcat基本知识(一)
    PowerDesigner显示mysql数据表注释
    java中wait和notify的虚假唤醒问题
    为什么wait和notify只能在synchronized中?
    一篇blog带你了解java中的锁
    jvm类加载机制总结
    Java的浅拷贝与深拷贝总结
    政府网站公祭日,如何使网站整体变灰
    java 为什么重写equals一定要重写hashcode?
  • 原文地址:https://www.cnblogs.com/allenzhaox/p/3201841.html
Copyright © 2011-2022 走看看