本文主要是介绍脑筋急转弯之_1戴帽子_2海盗分金,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
10、戴帽子
题目:戴帽子
三人在公园争论谁最聪明无人服输,一老者过来给戴帽子,说我这里有 5 顶帽子,有 3 顶黑色,2 顶白色。我给你们带上,你们不能看自己的帽子,只能看到对方的帽子,谁最快说出自己戴的是什么颜色的帽子谁就最聪明。老者给三人都戴上了黑色的帽子,过了不久有人猜到了自己戴的什么帽子 他告诉老者自己戴的诗黑色的帽子,请问这个人是怎么猜到的?
按照上面的组合下来
- 1、黑 黑 黑
A B C 看到没有人说出自己的颜色,并且A B C 他们看到对方都是黑色,自己有可能是黑色也有可能是白色.那么A就会考虑自己是黑色了。这个时候,内心活动:
如果我看到有一个白色的,那么肯定会有人猜出来(下面第二种结果,会有人猜出来)。现在我看到的都是黑色,并且没有人回答,那么我肯定是黑色所以这种情况是最能判断谁是最聪明的人选
- 2、白 黑 黑
A看到其他人都是黑色。陷入了沉思
B看到A C 是一白一黑。不敢确定自己的
C同B这个时候,B(C)就猜想了,自己如果是白色,那么C(B)肯定会猜出来,猜不出来不是傻子么。所以果断说出自己的颜色。黑色 这种情况只有B 和C 能快速猜出来,B和C如果想不到,那A就会猜错。只能说名B和C太笨了
-
3、黑 白 白
很明显猜出A自己是黑色 -
4、白 黑 白
很明显猜出B自己是黑色 -
5、白 白 黑
很明显猜出C自己是黑色
2、海盗分金
有五个非常聪明的海盗,他们都是死理性派,编号分别是P1、P2、P3、P4、P5。他们一同抢夺了100个金币,现在需要想办法分配这些金币。
海盗们有严格的等级制度:P1
海盗们的分配原则是:等级最高的海盗提出一种分配方案。然后所有的海盗投票决定是否接受分配,包括提议人。并且在票数相同的情况下,提议人有决定权。如果提议通过,那么海盗们按照提议分配金币。如果没有通过,那么提议人将被扔出船外,由下一个最高等级的海盗再提出新的分配方案。
海盗们基于三个因素来做决定。首先,要能留在船上存活下来。其次,要使自己的利益最大化(即得到最多的金币)。最后,在所有其他条件相同的情况下,优先选择把别人扔出船外(这是因为每个海盗都想夺占这条船的控制权)。
海盗的逻辑
现在,假如你是等级最高的P5,你会做何选择?直觉上,为了保住自己的生命,你可能会选择留给自己很少的金币,以便让大家同意自己的决策。然而,结果和此大相径庭。
解决这个问题的关键在于换个思维方向。与其苦思冥想你要做什么决策,不如先想想最后剩下的人会做什么决策。假设现在只剩下P1和P2了,P2会做什么决策?很明显,他将把100金币留给自己,然后投自己一票。由于在票数相同的情况下提议人有决定权,无论P1同不同意,P2都能毫无危险地将所有金币收入囊中。
现在再把P3考虑进来。P1知道,如果P3被扔下海,那么游戏就会出现上述的情况,自己终将一无所获。由于他们都很聪明,P3同样能看到这一点,所以他知道,只要给P1一点点利益,P1就会投票支持他的决策。所以P3最终的决策应该是:( P3,P2,P1 ) → ( 99,0,1 )
P4的策略也类似:由于他需要50%的支持率,所以他只需贿赂1个金币给P2就可以了。P2一定会支持他(否则轮到P3做决策,他就一无所获啦)。所以P4最终的决策是:( P4,P3,P2,P1 ) → ( 99,0,1,0 )
P5的情况稍有不同:由于这次一共有5个人,他至少需要贿赂两个海盗才能使自己的决议通过。所以决策就是:( P5,P4,P3,P2,P1 ) → ( 98,0,1,0,1 )
这个结果是不是很出乎意料?你不但可以保全自己,还能得到绝大部分的利益!其实这里面蕴含着递归的思想,它是解决许多问题(如汉诺塔问题,全排列问题,整数划分问题等)的有利手段。好了,看到这里,想必你一定在感慨:哎,还是做上司(等级高)好啊!且慢!问题还没有结束
这篇关于脑筋急转弯之_1戴帽子_2海盗分金的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!