古墓丽影周年纪念转筒谜题解法

来自古墓丽影中文站

古墓丽影:周年纪念司祭盎圣域(Sanctuary of Scion)的转筒谜题很有意思,也是各版玩家共同面临的谜题(除Wii版)。

古墓丽影:周年纪念攻略导航
  1. 秘鲁(Peru)
    1. 山间洞穴(Mountain Caves)
    2. 比尔卡班巴城(City of Vilcabamba)
    3. 失落的山谷(The Lost Valley)
    4. 夸洛佩克古墓(Tomb of Qualopec)
  2. 希腊(Greece)
    1. 圣方济各堂(St. Francis Folly)
    2. 大竞技场(The Coliseum)
    3. 弥达斯宫殿(Midas's Palace)
    4. 蒂霍坎古墓(Tomb of Tihocan)
  3. 埃及(Egypt)
    1. 哈蒙神庙(Tempel of Khamoon)
    2. 哈蒙方尖碑(Obelisk of Khamoon)
    3. 司祭盎圣域(Sanctuary of Scion)
  4. 失落之岛(Lost Island)
    1. 纳特拉的矿井(Natla's Mines)
    2. 大金字塔(The Great Pyramid)
    3. 最终之战(Final Conflict)

这关开始时,有四个转筒,根据壁画的提示,需要将转筒底座上的图案转到两两对应。

转筒谜题和墙上的提示

初始状态解法

  • TombCrow

我们的目的是将转筒底座上的图案转到两两对应。可以发现,转动一个方尖碑的时候,只有对角线那个不转,其他两个都跟着转

进入方尖碑区域时,所有底座图案都是同一朝向,为方便说明,标号如下:

D A
C B

以壁画为参照,A和C的图案本身就在正确的位置上,而B和D的图案都差了半圈。
所以,把B和D各转半圈。转B的时候,A和C也跟着转半圈,D不动,B进入正确位置;转D的时候,B仍然停留在正确位置,而A和C再转半圈,再次回到正确的位置上。此时ABCD全部归位,机关打开。

估计是为了降低解谜难度(增加“蒙对”几率),这个机关并不需要严格按照壁画形象对应,只需要将相同图案调整为两两对应。因此ABCD的设定是随意的。也就是对角线上的两个各转半圈就行了,方向随意。

以上是通过逻辑思维,在转筒为初始状态下给出的解法。是否能有一个万能公式,在转筒为任何状态下都能迅速找到答案?

有的~

万能公式

3-3司祭盎圣域一进大门,解决一些敌人之后,就会面临第一个谜题,需要将四个转筒转到要求的位置。(具体是不是要跟墙上壁画对应我还有疑问,因为我和小丘的结果相同,但是看起来并没有对应壁画。这个需要求证,但不在本文讨论之列)由于转动一个转筒会带动附近两个,这个问题并不是非常简单。好在关卡中的初始状态和目的状态相差不大,稍微仔细观察应该能得出答案。

本文的目的,则是作一个一般性的讨论,讨论在这种谜题中,如何得到从任一状态到任意另一状态的方法。过程中会用到一些数学知识,但是放心,不会很难。初步计划本贴划分为几个部分,讨论内容所包含的数学成分越来越多。对数学不感兴趣的可以及早停下,而有兴趣的可以一起讨论。

约定

在正式开始之前,先做好约定,以方便描述。

如下图所示,将四个转筒用一个2x2矩阵表示(没学过矩阵的不用怕,使用矩阵只是看起来直观,并不涉及相关具体知识)。

下图实际上是就是俯视图。

古墓丽影周年纪念埃及转筒谜题

然后我们约定,如果将某一个转筒逆时针旋转1/4圈(也即向右),则在矩阵中用1表示;如果旋转半圈,则用2,顺时针旋转1/4圈用3,不动用 0。那么,对于任何一对初始状态和目的状态,我们都可以用这个矩阵表示四个转筒各自的变化。例如从游戏中的初始状态到目的状态,如果转筒之间互不影响,则需要把左上角和右下角两个各转半圈,另两个不动,那么用矩阵表示就是:

[2 0] 或 [0 2]
[0 2] [2 0]

当然用1表示顺时针也是可以的,但是结论也要反过来。这四个数字的实际意义,其实就是要让这个转筒逆时针(或者你可以改成顺时针)转过几个小壁画(转筒上的,相当于1/4圈)。

约定完毕。

结果

为方便大家,在这里试着用文字叙述一下解法。

当任何一组四转筒的当前状态,以及我们想要到达的状态都已知的时候,就会得到一组四个数字,0~3之间,分别对应四个转筒如果可以独立转动,需要逆时针(或者顺时针)转动的小壁画数。那么对于这四个中的某一个,如何进行操作呢?

假设选定了某一个,那么我们就用这个转筒以及它旁边会受它影响的两个转筒,所对应的三个数字相加。然后减去2倍的,在对角位置不受影响的那个转筒对应的数字。得到的结果除以3。这个结果可能不是整数,那么就试着给它加上4/3或者8/3,肯定会得到一个整数。在这个数上,加或者减4的整数倍,使得结果是 0,1,2,3中的一个。(例如5 -> 1,-2 -> 2等等)

如果结果是0,这个转筒不用动。
如果结果是1,这个转筒要逆时针(或顺时针,总之要跟开始时的假设一致)转1/4圈。
如果结果是2,这个转筒要转半圈。
如果结果是3,这个转筒要顺时针(或逆时针,同上)转1/4圈。

计算和操作的顺序无关紧要。先算任何一个转筒都行。

解法

约定中得到的矩阵,实际上就是如果转筒之间毫无影响,从初始状态到目的状态,四个转筒各自需要进行的操作。为了一般化,现在我们在其中替换上字母(也即变量)。注意它们只可能是0,1,2或3。而且,对于具体问题来说,这四个数都是已知的,都是具体的数字。

[x y]
[w z]

现在我们假设,为了实现这个矩阵操作产生的效果,我们需要对左上角的转筒进行的操作为a,或者说,让这个转筒逆时针转过a个小壁画。依次给其他三个标上b,c,d。

[a b]
[c d]

注意,在讨论a,b,c,d的时候,这次四个转筒之间是存在游戏中的那种影响的。因此a,b,c,d就是我们想要的结果,它们也只可能是0,1,2或3。

不管你看懂了没有,我们接下来都可以列方程了。如下方程是显然的:

{x = a + b + c
{y = a + b + d
{w = a + c + d
{z = b + c + d

这个方程正是一个转筒旋转会带动旁边两个转筒的体现。学过线性代数的可以用矩阵,没学过的一样可以求解这个多元一次方程组。这样可以得到:

{a = x/3 + y/3 + w/3 - 2z/3
{b = x/3 + y/3 - 2w/3 + z/3
{c = x/3 - 2y/3 + w/3 + z/3
{d = -2x/3 + y/3 + w/3 + z/3

注意现在还不一定是最终结果。注意到1/3的存在,abcd不一定是整数,为此,我们需要加入一个调节因子k,使得结果能够凑成整数:

{a' = a + 4k/3
{b' = b + 4k/3
{c' = c + 4k/3
{d' = d + 4k/3

其实只要a'能凑成0~3的整数,b'c'd'也就一定能成为合适的整数。如果得到的整数超出0~3,就求它们除4的余数。注意-1在这种情况下会变成3。现在得到的a'b'c'd'就是可以用于实际操作的结果。

当a'=1时,将左上角的转筒逆时针旋转1/4圈(或者你可以改成顺时针,总之跟开始的假设要一致)
当a'=2时,将左上角的转筒旋转半圈
当a'=3时,将左上角的转筒顺时针旋转1/4圈(同a'注释)
当a'=0时,不动

b'c'd'的处理方法相同。

例题

例题1

不能光说不练。我们来看一道例题。就以游戏中的情形为例。

取前一种情况,显然x=2,y=0,w=0,z=2,那么

{a = 2/3 + 0/3 + 0/3 - 2*2/3 = -2/3
{b = 2/3 + 0/3 - 2*0/3 + 2/3 = 4/3
{c = 2/3 - 2*0/3 + 0/3 + 2/3 = 4/3
{d = - 2*2/3 + 0/3 + 0/3 + 2/3 = -2/3

很容易试出来,当k=2,
{a' = 2
{b' = 4 = 0
{c' = 4 = 0
{d' = 2

那么只要将左上角和右下角的转筒旋转半圈即可。

结果与乌鸦给出的解法完全相同。

例题2

再来一道例题(【八爪鱼】问,【费茨】解)

下面这张图的情况下,解法如下:

{a = 2/3 + 3/3 + 3/3 - 2*2/3 = 4/3
{b = 2/3 + 3/3 - 2*3/3 + 2/3 = 1/3
{c = 2/3 - 2*3/3 + 3/3 + 2/3 = 1/3
{d = - 2*2/3 + 3/3 + 3/3 + 2/3 = 4/3

所以 k=-1

{a' = a - 4/3 = 0
{b' = b - 4/3 = -1 = 3
{c' = c - 4/3 = -1 = 3
{d' = d - 4/3 = 0

所以要把右上和左下角两个反方向(不知道你定的是顺时针是1还是逆时针是1?反正反过来)旋转1/4圈即可。

模拟程序

这里还有个古墓丽影中文站论坛玩家【八爪鱼】制作的谜题模拟程序,有兴趣可以下载来试试: