我的社区

古墓丽影 => 古墓丽影三部曲 => 主题发帖人为: 费茨 于 2007 七月 26, 00:40:01

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

本文的目的,则是作一个一般性的讨论,讨论在这种谜题中,如何得到从任一状态到任意另一状态的方法。过程中会用到一些数学知识,但是放心,不会很难。初步计划本贴划分为几个部分,讨论内容所包含的数学成分越来越多。对数学不感兴趣的可以及早停下,而有兴趣的可以一起讨论。
-----------------------------------------------------------------------------------
特解
在游戏中,根据乌鸦所指出的解法,只需要将对角两个转筒各转半圈即可。
-----------------------------------------------------------------------------------
通解

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

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

+---------+
|  o     o  |            [ o   o ]
|             |    --->  [         ]
|  o     o  |            [ o   o ]
|             |
       A
       ||
     入口

然后我们约定,如果将某一个转筒逆时针旋转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'的处理方法相同。

-----------------------------------------------------------------------------------
例题

不能光说不练。我们来看一道例题。就以游戏中的情形为例。
取前一种情况,显然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
那么只要将左上角和右下角的转筒旋转半圈即可。
结果与乌鸦给出的解法完全相同。
-----------------------------------------------------------------------------------
今天先写到这里,等稍后有时间,同时也有必要的时候,会把更详细,同时也更加数学化的过程写到这里。敬请期待。
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 七月 26, 00:48:31
这样子就行了吧......
另外,只要柱子上图案两两相对就行了,不用与墙上相同,但那样应该会增加解谜时间
引用自: 费茨 于 2007 七月 26, 00:40:01
然后我们约定,如果将某一个转筒逆时针旋转1/4圈(也即向右),则在矩阵中用1表示;如果旋转半圈,则用2,顺时针旋转1/4圈用3,不动用0。那么,对于任何一对初始状态和目的状态,我们都可以用这个矩阵表示四个转筒各自的变化。例如从游戏中的初始状态到目的状态,如果转筒之间互不影响,则需要把左上角和右下角两个各转半圈,另两个不动,那么用矩阵表示就是:

[2 0]
[0 2]

当然用1表示顺时针也是可以的,但是结论也要反过来。这四个数字的实际意义,其实就是要让这个转筒逆时针(或者你可以改成顺时针)转过几个小壁画(转筒上的,相当于1/4圈)。
约定完毕。
按我的理论就是将上面矩阵中4个数字弄得一样就行了
所以说应该转左下右上各半圈也可以,你去试试
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 费茨2007 七月 26, 00:50:24
这个偶就不管啦...... :wave:

我想要解决的问题是最一般的情况下如何求解。我并没有考虑具体的初始状态和目的状态。我只考虑它们之间的差别。
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 七月 26, 00:53:35
......不敬业者
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 费茨2007 七月 26, 01:01:23
:tongue3:
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 费茨2007 七月 26, 01:14:23
帖子改正了。看看还有啥意见没 :glasses2:
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 七月 26, 01:16:45
我再去研究研究......
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: TombCrow2007 七月 26, 01:40:42
不涉及数学,纯粹按照逻辑思维的解法是~~

目的:将底座图案调整为两两对应
现象:转动一个方尖碑,只有对角线那个不转,其他两个都跟着转
观察:进入方尖碑区域时,所有底座图案都是同一朝向。要调整为两两对应的话,一个底座与相邻底座差了半圈(2格)。

PS:虽然写了新的解释,但觉得还是不如原先的清晰,删了~

D   A
C   B

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

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

这只适用于初始状态,如果转乱了,需要重新思考这些图案的对应。我刚才故意转乱了几次,都是通过逻辑思维解开的,数学N年没碰了......
fz的解法适合任何情况。
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: TombCrow2007 七月 26, 02:04:20
这帖子就顶上去吧......
对这个谜题有兴趣的在这里提交解法~~
我看到时候wiki给这玩意另设一页比较好o(∩_∩)o...哈哈
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: lullaby2007 七月 26, 02:23:03
其实数学原理是懂啦~~~只是想知道是根据什么墙上或是哪里的提示才知道应该这样转的.
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: TombCrow2007 七月 26, 02:26:57
墙上的壁画
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: Tomb Raider2007 七月 26, 09:53:44
偶滴数学不好 :happy9:
过这里时完全是自己蒙的 :laughing11:
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 七月 26, 13:03:07
......搞了一上午,想用Flash做一个演示,失败了,现在正试用VB......
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 七月 26, 14:21:47
呼~~
总算被我搞定
发上来一个VB小程序
简单介绍一下
程序中四个圆是四个转桶
  每个圆内有两组数字
    上面一组是将圆桶与墙上壁画对应所需要逆时针转的次数(0为不需再转)
    下面一组是解决过程中转某个圆桶的方向、次数(正数为顺时针,负数为逆时针,0为没转过,转够一圈后计数回0)
  每个圆旁各有两个按钮
    左箭头为逆时针转
    右箭头为顺时针转
当每个圆内上面一组数字相同时迷题解开、程序中央出现Solved字样
解迷过程中任何时候均可按"Reset"重新开始/按"Exit"退出程序

不知还有没有BUG请各位帮忙测试


P.S.我不知道这东西有多大用......

===============编辑后=============
啊,发现一个小问题,修正了,应该还没有人下载过吧......
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 费茨2007 七月 26, 15:58:12
八爪鱼你这个程序可以做的更扩展一点啊。

现在这个程序的主要用处,我感觉就是在游戏外重新解一下这个谜题。

所以我的建议有两个。
1. 可以把我的解法放进去,使用者只要输入初状态和末状态就可以马上得到解法。
2. 可以自由设定初始和结束状态。
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 七月 26, 16:01:33
你以为编这么个小玩意容易啊
那44kb至少有30kb是程序代码
你自己算算长度

不过我会考虑一下
但至少是在帮TR搞定庄园之后
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 费茨2007 七月 26, 16:10:50
彻底变成技术贴了 :laughing11:

在解法之前加了一段结果简述,大家看看有没有好懂一点......
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 七月 26, 16:25:48
总共有四种解法
  a    b    c    d
   2    0    0    2
   0    2    2    0
   1   -1   -1   1
  -1   1    1    -1
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: ppq9162007 七月 26, 22:50:51
天哪!我觉得你们把简单问题复杂化了

我数学不好,原谅我在这里大放厥词!
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 小小鸟2007 七月 26, 23:49:51
不就是个数学建模么!这算简单的了,前两天配训的时候比这难的题差点逼疯了我
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 费茨2007 七月 27, 00:01:45
嗯~~~就是随便玩玩啦~~~
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 7800gt2007 七月 27, 00:58:30
白撞了
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 七月 27, 01:04:16
我那个就像傻瓜软件,可以自己试着玩......
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 大眼夹2007 八月 04, 20:01:46
果然是数学专家,为了一个游戏还去整建模解题~看LZ的头像就知道了......呵呵
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 八月 04, 20:51:53
我头像怎么了......

P.S.只会数学是做不出来这东西的
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 费茨2007 八月 04, 20:55:21
 :tongue3:

PS,LS,他说的是"LZ的头像",是我的头像,不是"LS"的头像。 :tongue3:
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 八月 04, 23:53:16
......玩游戏玩多了
Sorry......
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: cool2003052007 八月 08, 09:04:06
这个其实很简单
对角线上的两根图腾柱先后顺时针方向旋转180度就ok了。是不是很简单啊!
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 八月 08, 10:59:03
还可以对角两根顺转一次
另外一组逆转一次
一样能开
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 费茨2007 八月 08, 13:02:25
引用自: cool200305 于 2007 八月 08, 09:04:06
这个其实很简单
对角线上的两根图腾柱先后顺时针方向旋转180度就ok了。是不是很简单啊!

这个大家都知道,我写这个帖子的目的是想解决更一般的情况下的解法。
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 八月 08, 13:54:07

对了
你上次说让我把那程序改成什么样?

P.S.我技艺不精,太难的搞不出来
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 八月 09, 10:28:12
看来LZ又有活了~~

下面这图是在我一次没转过时截下来的
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 费茨2007 八月 09, 12:35:32
引用自: 八爪鱼 于 2007 八月 08, 13:54:07

对了
你上次说让我把那程序改成什么样?

我是说,用户输入初状态和末状态,程序能自动给出解法。

引用自: 八爪鱼 于 2007 八月 09, 10:28:12
看来LZ又有活了~~

下面这图是在我一次没转过时截下来的

这是啥意思...... :icon_scratch:
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 八月 09, 12:43:04
引用自: 费茨 于 2007 八月 09, 12:35:32
这是啥意思...... :icon_scratch:
你说的初始状态是
[2,0]
[0,2]
我碰到的是
[2,3]
[3,2]
引用自: 费茨 于 2007 八月 09, 12:35:32
我是说,用户输入初状态和末状态,程序能自动给出解法。
这个我估计我做不出来......
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 费茨2007 八月 09, 12:51:20
{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圈即可。
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 八月 09, 12:54:36
我给的数字是需要顺转的次数
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: anni0101012007 八月 11, 16:08:06
原来这么难的..........我第一次到那的时候就随便乱转了一遍就过了.......之后再到那怎么转都开启不了石柱了.................
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 八月 11, 16:13:34
如果你的知识不够丰富的话......你只要看解法就好了
标题: Re: 司祭盎圣域开始处四转筒谜题的一般解法
作者: 八爪鱼2007 九月 19, 20:26:04
嘿嘿
都快把这茬忘了
这个版本可以自己更改起始状态
P.S.还是没达到费茨的要求