解开《哈利·波特》中所有 42 个版本的魔药谜语

《哈利·波特与魔法石》的结尾有一个有趣的谜语。 哈利和赫敏进入房间,之后房间的入口被魔法火封锁,他们只能通过解决以下谜题才能离开房间:

前面有危险,后面有拯救,
你在我们中间找到的两个人会帮助你;
与七人之一一起,你将继续前进
另一人会立即带你回去。
在我们两个人身上你会发现只有荨麻酒,
而三者则带来毁灭,暗中站成一排。
所以选择你注定要品尝的那一款,
为此,我们给出四个提示。
毒药徒劳地试图隐藏其致命的热量,
你总会在酒的左边找到他,
并且知道那些处于边缘的人拥有不同的天赋,
但如果你想继续下去,没有人会帮忙。
我们每个人的大小都不同,从边缘到边缘,
你的死亡不在于小事,也不在于大事;
右端第二个和左端第二个
它们尝起来像双胞胎,尽管它们看起来并不相似。

[摘自《哈利·波特与魔法石》一书的“民间翻译”]

解开《哈利·波特》中所有 42 个版本的魔药谜语

简而言之,他们需要了解哪些瓶子里装有哪些药水。

在本文中,我们将使用编程解决该难题的所有 42 种可能的变化,并绘制结果图表(如上图所示,只是更大)。

等一下,42 个选项是从哪里来的?

这是因为没有标明“较小”和“较大”药水的位置。 较大的可以在七个位置之一,这为较小的提供了 6 个剩余选项,总共 7 * 6 = 42。我们无法确切地知道 JK 罗琳提出时的具体想法。除非她在你的推特上谈论这个谜语。 好吧,直到那不可避免的一天到来之前,我们可以选择一个随机版本并使用它。 然而,无法保证其可解性,这就是为什么我们为了共同利益而努力,解开谜语的所有 42 个变体(或证明它们的不可解性)。

已经决定

首先,这里是这个谜题的所有限制,用简单的术语重述:

  1. 药水有两种无害,三种有毒,一种可以让你前进,一种可以让你后退。
  2. 两瓶无害药剂的左侧各有一瓶有毒。
  3. 两边的药水各不相同,都无法让你前进。
  4. 最大和最小的瓶子都不含毒药。
  5. 左边第二个瓶子和右边第二个瓶子里装的是同样的药水。

这该如何处理呢? 让我们考虑以下选项。 请注意,正如谜语所说,该行中有 1 个瓶子比其他瓶子小,还有 1 个瓶子比其他瓶子大。

解开《哈利·波特》中所有 42 个版本的魔药谜语

让我们尝试愚蠢地检查所有选项 - 一次拿一瓶并选择内容的所有可能选项。

例如,由于第 3 条限制,第一个瓶子不能包含使我们前进的药水。 由于限制 2,它也不包含安全药水 - 它的左边不能有毒药。 这给我们留下了毒药水和回归药水的选择。 让我们尝试一下这两个选项。

在下图中,绿色药水代表毒药,橙色是安全饮料,蓝色是向后移动的药水,紫色是向前移动的药水。

解开《哈利·波特》中所有 42 个版本的魔药谜语

解开《哈利·波特》中所有 42 个版本的魔药谜语

让我们对两个工作选项重复此过程 - 取出第二个瓶子,并交替尝试所有可接受的内容选项。 这将为我们提供以下信息:

解开《哈利·波特》中所有 42 个版本的魔药谜语

解开《哈利·波特》中所有 42 个版本的魔药谜语

解开《哈利·波特》中所有 42 个版本的魔药谜语

解开《哈利·波特》中所有 42 个版本的魔药谜语

继续以这种方式行事,并放弃所有在不违反列出的限制的情况下无法填充药水的工作选项,我们将得出唯一可接受的选项:

解开《哈利·波特》中所有 42 个版本的魔药谜语

当然,我们不能保证找到解决方案。 可能没有解决方案,也可能有多个解决方案(如果您有多个解决方案,这就像无法解决谜题一样,因为您不知道哪种药水是正确的)。

将算法应用于所有选项为我们提供了以下解决方案。 该谜语有 8 个版本可解,8 个版本无解,26 个版本有多个解。

解开《哈利·波特》中所有 42 个版本的魔药谜语

有关解决方案的更多信息

所有已解决的谜语版本都有共同点吗? 是的! 请注意,其中最小或最大的瓶子位于第二或第六位。 这让我们得出结论,由于限制 #2 和 #6,第二瓶和第六瓶含有安全药水。 如果没有这一步,我们就无法消除这些瓶子含有毒物的可能性,最终我们会得到几种可能的解决方案。 还解决了选项要求将第二个“特殊”瓶子(最小或最大)放置在第三或第四位置。 否则的话,就无法找到推动我们前进的药剂的确切位置。

结果

我将引用书中的一段话作为结束。

赫敏大声地呼了一口气,哈利惊讶地发现她在微笑——这是他最不可能想到的事情。 “太棒了,”赫敏说。 - 这不是魔法 - 这是逻辑,一个谜语。 很多最伟大的魔术师都没有一点逻辑,他们就会永远被困在这里。”

但是等一下——也许我们可以根据书中的对话找出这个谜语的规范版本:

“明白了,”她说。 “最小的瓶子将引导我们穿过黑火,到达石头。”

...

“那哪一个能让你穿过紫色火焰回来呢?”

赫敏指着这一排右侧的一个圆形瓶子。

该死的。 这个选项仍然给我们提供了几种解决方案。 推特,博士。

代码

如果您对解决这个难题并绘制图表的代码感兴趣,您可以 скачатьздесь.

来源: habr.com

添加评论