今日下来无事,偶想起曾经有个据说是微软公司的程序员面试题,拿来与大家分享一下,题目大致如下: 5个海盗,分100颗钻石,5人分别编号为1号到5号,先分配方法如下,1号提供分法,然后全体表决,如果支持了超过半数(必须超过,半数不算),则按1号的办法分配,反之1号丧失获得宝石的权利,由2号出分配方案,剩下的人表决(1号同事丧失表决权),依次类推。。。 问题是,假设你是1号,你应怎样分配才能获得最大利益? 此题并非脑经急转弯,其实是一个逻辑推理题,先详解如下,供各位参考: 很多人一上来就开始深思熟虑自己是1号怎么办,首先保证自己的方案被通过,再去想利益最大化。其实,不要只盯着自己是1号的身份,我们不妨进行几个假设, 假设1:如果1,2,3的方案都没有通过,最终剩下4,5号,4号该如何分配呢? 4号没得选,因为5号可 以一票否定他,只有将100颗钻石全部给5号。所以4号注定分不到钻石。 假设2:如果1,2,的方案都没有通过,剩下3,4,5号,3号该如何分配呢? 3号可以自己留99颗,给4号一 颗,根据假设1的情况,4号绝对会同意,否则自己一颗都得不到。 假设3:如果1,的方案都没有通过,剩下2,3,4,5号,2号该如何分配呢? 2号可以自己留98颗,给4,5各一颗,4号无论怎样都是1颗,根据假设3不难看出5号会同意这个方案。 那么最终回到我们最开始的问题,你是1号,如何分配呢? 根据上面的推理,很容易得出1号98颗,2号0颗,3号一颗,4,5中随意选择一个给1颗即可! 从而获得最大的98颗的利益。 |
投稿/广告/合作邮箱511006333@qq.com|网站地图|南阳同城网 ( 黔ICP备16004385号-3 )
GMT+8, 2024-10-7 11:28 , Processed in 0.028943 second(s), 19 queries .
Powered by Discuz! X3.4
© 2001-2023 Discuz! Team.