首页 » 有趣的智力题

问题

所有的问题,都在下一章的“解答”中有分析。

问题:A、B两人分别在两座岛上。B生病了,A有B所需要的药。C有一艘小船和一个可以上锁的箱子。C愿意在A和B之间运东西,但东西只能放在箱子里。只要箱子没被上锁,C都会偷走箱子里的东西,不管箱子里有什么。如果A和B各自有一把锁和只能开自己那把锁的钥匙,A应该如何把东西安全递交给B?

解答

问题:你被困在一幢200米高的大楼的楼顶。你手里有一根150米长的绳子和一把瑞士军刀。你所站的地方有一个铁钩子。往楼下看时,你发现大楼正中间,也就是100米高的位置上,有一个可以落脚的金属支架,上面还有另外一个钩子。你怎样才能利用这些东西安全到达地面?

解答

问题:故事发生在一个遥远的神秘世界。在那里,人们可以制造出不同等级的毒药。这种毒药是致命的,唯一的解药则是更强的毒药。若不幸中毒后,只要及时喝下更强的毒药就没事了,否则不管是谁都会在10分钟之内死亡。一天,恶魔向国王发起挑战,看谁拥有最毒的毒药。这是一场死亡竞赛,比赛规则很简单:双方各带一瓶毒药,先把对方瓶中的毒药喝掉一半,然后再把毒药换回来,把自己的毒药喝完。10分钟后,活下来的人便赢得这次比赛。恶魔藏有世上已知的最毒的毒药。国王知道,他无论如何也造不出比那更强的毒药来,并且也知道比赛时恶魔用的就是他那瓶绝无仅有的毒药。国王有办法赢得比赛吗?

解答

问题:有个国王拥有1000瓶非常名贵的红酒,某反对势力想暗杀这国王,便派人在红酒中下毒。犯人在其中一瓶酒中下了毒之后便被捉拿了,但守卫们不知道毒是下了在哪一瓶。只知道这毒非常厉害,即使稀释1000000倍仍然致命,而这毒的特性是一个月后才发作的。国王原本打算5星期后招待邻国国王时用上这批红酒,临时更换的话有可能导致国际纠纷。他于是决定用死囚来试毐,但国家并没有1000个死囚那么多,仁慈的国王亦想尽量减少牺牲的人数,应该怎样安排试毒才能在国宴用上无毒的999瓶酒,而又牺牲最少死囚呢?(提示:最少需要10个囚犯)

解答

问题:典狱长要和 100 个囚犯玩这么一个游戏。典狱长给每个囚犯发两个手套,一个黑色的,一个白色的。之后,每个囚犯的额头上都会写上一个实数,所有这 100 个实数互不相同。每个囚犯都能看到其他 99 个囚犯前额上所写的数,但不能看到自己的数。接下来,每个囚犯必须独立地决定把哪个手套戴在哪只手上。等到所有囚犯都戴好了手套,典狱长会把他们按照前额上所写的数从小到大地排好,并要求他们手牵着手站成一横排。如果每两只握在一起的手都戴着相同颜色的手套,那么所有 100 个囚犯都可以被释放。在游戏开始前,他们可以聚在一起,商量一个对策。游戏开始后,囚犯与囚犯之间不允许有任何交流。囚犯们能够保证全部释放吗?

解答

解答

这个问题的关键是要加2把锁。方案:

  1. A把药放箱子里,并用自己的钥匙加锁。(LockA+药)
  2. 通过C送到B岛后,B用自己的钥匙再给箱子加一次锁。(LockA+LockB+药)
  3. 通过C送回A岛后,A将自己那把锁解开,让C再送给B。(LockB+药)
  4. B收到箱子后,用自己的钥匙解开自己那把锁,最终获取药。

这道题最初是从Matrix67的博客上看到的,问题和答案的图片也是来自他的博客。

把绳子割成50米和100米两段。把50米绳子的一端拴在楼顶的钩子上,另一端打一个小环。让100米长的绳子穿过这个环,再把它的两头系在一起形成一个绳圈。沿着绳子爬到落脚点,把100米长的绳子割断并收回来,然后把其中一端拴在钩子上,沿着绳子爬到地面。

这道题最初是从Matrix67的博客上看到的。

解题的思路要集中在:强药性的毒药是弱药性毒药的解药;如果中了最毒药性就无救。那么,如果国王先服用了一种弱性毒药,就可以用恶魔的毒药作为解药了;恶魔这边的想法则是,不管你多毒的药,我喝了都没事,因为我有最毒的药作为解药,但是且慢,如果恶魔先喝下的是白开水,而不是毒药,那恶魔后服下的自己的最毒药就会置他于死地。

那么最终的答案将是:

  1. 国王上战场前数分钟时,喝一份弱药性的毒药,并提着一瓶白开水上战场。
  2. 开始国王和恶魔交换瓶子。
  3. 国王喝下恶魔的毒药(解毒);恶魔喝下国王的白开水(无毒)。
  4. 国王和恶魔交换回自己的瓶子。
  5. 国王喝下自己的白开水(无毒);恶魔喝下自己的最强毒药(中毒)。

十分钟后,恶魔就将死于自己的毒药之手。

后面Matrix67对这个问题进行了一点扩展,不过既然知道了先喝药和拧白开水上战场的策略,那接下来的变化就很好理解了:

如果恶魔在国王身边安插了间谍,知道了国王的伎俩,事情就又开始变得有意思起来了。恶魔是可以破解这个伎俩的。一个简单的办法是,在上战场前他也喝点弱毒药。这样下来,两个人最终都能活下来,谁也弄不死谁。恶魔还有一个更绝的办法:赛前什么都不喝,比赛时也带着一瓶白开水上去,于是双方在比赛过程中都喝不到半点毒药,国王将被他比赛前喝掉的那点毒药害死。 呵呵,你猜对了!我接下来确实想说:如果恶魔的“反欺诈”计划又被国王知道了呢?国王有没有一种“反反欺诈”呢?在这种局势下,我们不妨认为,这一折腾下来国王成功地骗恶魔两手空空上战场,于是他赛前喝点弱毒药,再带个稍微强点的去就能击垮恶魔了,成功地实现三重圈套。当然,当恶魔意识到这一点后,他又会重新带着无敌毒药上战场,整个局势转了一个大圈又回来了。 结论呢就是,这个博弈问题没有Nash均衡点。即使游戏双方都聪明绝顶也无用,递归思维深入到的层数唯一地决定了最终决策,整个游戏就像石头剪子布一样无限循环下去,最后倒还不如随机选择一种决策了事。

这道题的原版来自伯克利,它的内容如下:

An evil king has 1000 bottles of wine. A neighboring queen plots to kill the bad king, and sends a servant to poison the wine. The king's guards catch the servant after he has only poisoned one bottle. The guards don't know which bottle was poisoned, but they do know that the poison is so potent that even if it was diluted 1,000,000 times, it would still be fatal. Furthermore, the effects of the poison take one month to surface. The king decides he will get some of his prisoners in his vast dungeons to drink the wine. Rather than using 1000 prisoners each assigned to a particular bottle, this king knows that he needs to murder no more than 10 prisoners to figure out what bottle is poisoned, and will still be able to drink the rest of the wine in 5 weeks time. How does he pull this off?

问题和解答都来自Matrix67的博客。原题目则来自UyHip,它的内容如下:

A hundred prisoners are gathered together by their warden. Each prisoner gets two gloves: one black and one white. They are told that they have one night in order to plan a strategy, after which no communication between them will be possible. In the morning, they are told, each prisoner will have a distinct real number painted on his forehead. Each prisoner will be able to see the numbers painted on all other prisoners, but not his own. What each prisoner needs to do is to decide which glove to put on which hand. Once all prisoners have donned all gloves, they will be placed in a long line, one beside the other, ordered according to the value of the number on their foreheads, and will be asked to hold hands. If the pairs of hands holding each other all have same-colored gloves, all 100 prisoners will be set free. Your goal is to design a strategy that will maximize the probability of this happening.

首先来简化下题目,我们设立A、B两种情况对应“左黑右白”和“左白右黑”两种情况,那么只要囚犯排序后,保持“ABABAB...AB”(即“黑白白黑黑白白黑...黑白白黑”这样一个序列,就能保证获得释放。

如果只有2个囚犯,只要实现约定好你写A我写B,就能保证获释(无论AB或BA都能获释)。对于2人以上的囚犯,Matrix67提供了一种策略:囚犯们事先进行编号,如[1...n],而按囚犯头上的实数排序后,将获得另一个新的序列:

囚犯在游戏前的编号 1 2 3 4 5 6 7 8
囚犯额头上的数字 0.1 0.4 0.6 0.2 0.8 1.1 0.5 1.5

按囚犯额头上的数字重新排序后将是:

1, 4, 2, 7, 3, 5, 6, 8

由于每个囚犯不能看见自己额头的数字,所以他将看到一个不完整的序列。策略的关键在这里:如果在一个序列中,位于前面的某个数比位于后面的某个数大,就将其定义为一对“逆序对”,而囚犯的策略是数一数自己看到的逆序对个数,如果和自己的编号同奇偶,就回答A,否则回答B。

例如2号囚犯看见的序列将是:

1, 4, 7, 3, 5, 6, 8

对应的逆序对对是:

(4, 3)
(7, 3)
(7, 5)
(7, 6)

4个逆序对,而自己的编号是2,逆序对个数和自己编号同偶,因此回答A。

现在从7号囚犯的角度看去,他所见的序列是:

1, 4, 2, 3, 5, 6, 8

对应的逆序对是:

(4, 2)
(4, 3)

2个逆序对,而自己的编号是7,逆序对个数和自己的编号不同奇偶,因此回答B。

现在2号回答A,7号回答B,而他们两个正好相邻!再次从囚犯2和囚犯7的角度出发,他们看到的残缺序列都是形如:

1, 4, ?, 3, 5, 6, 8

囚犯2和囚犯7所见的逆序对有一部分是相同的,那就是不含"?"的逆序对(在这里就是(4, 3))。囚犯2见到的其他逆序对必然是在数字7和其他数字间产生的(在这里就是(7, 3)(7, 4)(7, 5)),囚犯7见到的其他逆序对也必然是在数字2和其他数字间产生的(在这里就是(4, 2))。如下表:

-囚犯2所见的逆序对囚犯7所见的逆序对
相同逆序对(4, 3)
不相同逆序对 (7, 3)
(7, 5)
(7, 6)
(4, 2)

注意到游戏开始前的囚犯编码中:

1, 2, 3, 4, 5, 6, 7, 8
#, 2, @, @, @, @, 7, #

所有小于2和大于7的数(#),要么与2、7都形成逆序对,要么就与2、7都不形成逆序对,或者与2、7都不形成逆序对;所有2和7之间的数(@),要么与2形成逆序对,要么与7形成逆序对。假设有a个#,t个@,那么2、7看到的逆序对个数分别是:

囚犯2看到的逆序对个数a+(t-x) 即a-x+t
囚犯7看到的逆序对个数a+x

由于(a+x)和(a-x)必然是同奇偶的(a+x是奇数则a-x必为奇数,反之a+x是偶数则a-x也必为偶数),所以(a+(t-x))与(a+x)的奇偶性就取决于t。回到题中,2和7间有4个数(3、4、5、6),即t为4(偶数),因此囚犯2和囚犯7看到的逆序对个数必然都是偶数个。

换句话说,游戏开始前囚犯的排序中,编号同为偶数的囚犯看到的逆序对必然不同偶(如2与6看到的逆序对不同偶),编号为奇偶的囚犯看到的逆序对则必然同偶(如2与7看到的逆序对同偶)。

参考

http://www.ocf.berkeley.edu/~wwu/riddles/hard.shtml

Using your Head is Permitted(UyHip)

分享

0