本帖最后由 回火马氏体 于 2017-10-6 22:43 编辑
【转载自微信公众号“数学中国”】
原贴地址:http://mp.weixin.qq.com/s?__biz= ... FCERDtcocX5AJfXV#rd
有一个激发学生智力的测试题目可能大家都知道。
老师拿了5顶帽子——3顶白帽子、2顶黑帽子——给3个聪明的学生看,然后让学生闭上眼睛,在每人头上戴上一顶白帽子,并将2顶黑帽子藏起来,每个学生只能看到另外两个学生头上的帽子,看不到自己头上的帽子。问学生们能否猜出自己头上帽子的颜色?
据说,这个问题是华罗庚先生在爱因斯坦提出的问题的基础上经过改进后提出的,也称为“华罗庚帽子问题”。
初一看问题似乎无解,每个学生看到另外两个学生戴的是白帽子,那么自己戴的可能是剩下的1个白帽子和2个黑帽子中的一个,无法确定自己头上帽子的颜色,因此他们都犹豫了。但这是三个非常聪明的学生,不一会儿,他们不约而同地举手告诉老师猜到了自己头上所戴帽子的颜色。他们是怎么做到的呢?假设三位学生是甲、乙、丙,学生甲假想自己头上戴的是黑帽子,那么学生乙将看到1黑1白两个帽子,在这种情况下乙就会很快知道自己戴的不可能是黑帽子,否则,学生丙将不假思索地立刻猜出自己戴的是白帽子。现在乙和丙都在犹豫,不能马上猜出,说明他们看到甲戴的不是黑帽子,从而甲就能猜出自己戴的必定是白帽子。同样,乙和丙也能猜出自己戴的是白帽子。非常神奇把?看来聪明的学生能得出一般人认为不可能的结论。
上面的问题只是小学生奥数水平的问题,下面这个“海盗分金问题”稍微复杂些。这个问题首先出现在1999年《科学美国人》杂志上。
传说有5个聪明的海盗,一同抢得了100个金币,要进行分赃。这些海盗有严格的等级,按等级高低分别称他们为老大、老二、老三、老四和老五,他们的分配规则还算民主:先由等级最高的海盗提出一个分配方案,然后全体海盗投票决定是否接受方案,如果半数或半数以上的海盗同意,那么就按这个方案分配,否则就将提出方案的海盗扔到海里,由下一个等级最高的海盗重新提出分配方案,并继续投票,依此类推。海盗们以下面的原则作出自己的决定:首先要保命,这当然是最重要的;其次要保证自己的利益最大化,即得到尽量多的金币;最后,在不损害自己利益的情况下,能够害人绝不会仁慈。还要对海盗的特性做一下交代,这是一批非常聪明而理性的海盗,他们一定会作出对自己最有利的决定。海盗们还是极端自私的,互不相信他人,不会结成同盟。那么问题来了,老大现在该作出怎样的分配方案?
直觉上,老大为保命,大概不能拿得太多,以保证其他海盗通过他的提议。但意外的是,老大提出的分配方案和直觉大相径庭:他给老三、老五各一个金币,老二、老四一个不给,剩下98个金币都留给了自己。难道他不怕其他几个海盗都投反对票然后把他扔到海里吗?不会的,老大自信这样的方案可让老三、老五投赞成票,加上自己一票,有超过半数的三票来通过他的方案。
为什么呢?要想作出最优的决策,不妨倒过来想一想最后剩下的海盗会作出怎样的决策。假设只剩下老四、老五二个海盗,老四会怎么分配?很明显,老四自己的一票就能保证他的方案会通过,他可以完全忽略老五的存在,把100个金币全部留给自己,老五一个金币都得不到。现在把老三考虑进来。老三要想自己方案获得通过,自己的一票不够,他还需要拉拢一个海盗。老四是无论如何也不会投赞成票的,将老三扔进海里他可以获得最大收益100个金币,因此,老三拉拢的只能是老五。给老五多少呢?一个金币足够了,一个金币总比一无所获强,老五一定会投赞成票。这样,老三的最佳方案就出来了:就是自己拿99个金币,老四一个不给,老五一个金币,即按海盗等级从高到低排列,他的方案是(99,0,1)。接下来,考虑老二参与,老二也只要拉拢一个海盗就行,同样的考虑可知老二只要给老四一个金币即可,即他的方案是(99,0,1,0)。回到一开始的情形,老大的方案就显而易见了,他需要拉拢二个海盗,这只要给老三、老五各一个金币即可,即老大的最佳方案是(98,0,1,0,1),这就是一开始给出的方案。这样,老大既能保命,又获得了最大的利益,看来做老大还是好啊。只是做老大好是好,风险还是很大的。不但要自己聪明,还要手下也个个聪明,要是有一个傻瓜,比如老三傻傻地认为一个金币太少,那老大的性命就很危险了。
要是让老大直接在所有可能的方案中找出最佳方案这是一件十分困难的事。上面这种从一个最简单情形出发逆向递归寻找最优方案是一个非常有效的方法,事实上前面的“帽子问题”的解决也可以使用逆向递归。由此,我们不难将上述“帽子问题”和“海盗分金问题”推广到更多帽子、更多海盗的情形,对“帽子问题”可推广到n个学生n顶帽子情形;对“海盗问题”则是:当6个海盗时,老大的最佳分配方案是(98,0,1,0,1,0),7个海盗时是(97,0,1,0,1,0,1),依此类推。不过当超过200个海盗时,这个方案需要修改了,因为老大用于贿赂其他海盗的金币不够了,这时,老大是否只有被扔进海里的命了呢?聪明的读者,你能帮老大找到保命方案吗?
上面的问题是在有限多个方案中选出一个最佳方案,如果有无穷多个可选方案,有没有找到最佳方案的可能呢?我们来看看下面的“约会问题”。
有两位聪明的经理人,在一个酒吧偶遇,却一见如故,聊得非常投机,相约第二天再在同一间酒吧见面。可能是有点喝高了,他们只约定在0点到1点之间见面,没有讲定具体时间。更糟糕的是,他们只顾聊天,都忘了问对方的联系方式,并且他们知道,经理人都很高傲,先到的人只会等10分钟,10分钟过后等不到人就会离开。那么,这两位经理人能在第二天见到面吗?
|