冒险解谜游戏中文网 ChinaAVG

标题: 解谜的艺术(1) 撬锁 [打印本页]

作者: deducemath    时间: 2010-5-29 08:26
标题: 解谜的艺术(1) 撬锁
本帖最后由 deducemath 于 2012-2-24 17:34 编辑 ' b# _% Y3 E, P0 Z$ b0 N/ G7 D/ C

1 y1 l+ X# K2 R7 i( z4 m' l声明:本文涉及高等数学,存在没有明确定义的概念,某些描述比较笼统。原因有二:其一,阐述清楚繁琐而费时;其二,此文属自娱型。想弄明白的读者请查阅相关文献。
" t" F% o6 r0 {6 O: a4 Q3 B% l   
6 I( u8 n) u% F        我之所以这么喜欢开锁,可能主要是因为我喜欢解各种各样的谜题。每个锁就好像一道谜题。……猫咪,你有时也像谜一样,但我最后还是会解开你的。”                                                                              
1 t' @, P) j4 q6 `                                                                                   ——Richard P. Feynman[1]' ]2 F7 {" Y' _# S
        我迷恋上了钥匙,并开始制造它们。先是把自己家的各种锁一一打开,偷看大人的秘密,后来就发展到未经邀请的去开别人家锁着的门。每当锁舌铛的一声跳开,我便陷入无限的欣喜之中。
' l; }  ~" t/ K; h* J) V0 \# j8 _4 e                                                                                   ——马小军(《阳光灿烂的日子》主角)
8 d* R5 c" A' t: C8 s, s
. D- Q6 O, D, W. E" {$ t5 v$ M       人们天生对隐秘的事物感兴趣。一些人喜欢撬锁因为开锁之后可以做所谓有趣的事儿。例如,在电影《阳光灿烂的日子》里,正太马小军爱偷看大人秘密;诺兰的处女作《追随》中克布“喜欢”由房间里的私人物品揣测屋主的特点,拿走或搞乱一些东西以“干扰某人的正常生活轨迹,让他们重新审视原本已熟视无睹的一切。” 我本人则比较享受撬锁的过程。上海美术电影制片厂的动画片我小时候看过不少,系列动画《邋遢大王奇遇记》有个片段记忆犹新,可以说,这是关于解锁谜题的最初记忆。
9 S4 U3 L+ {7 m9 [
[attach]24688[/attach]
7 b8 s* e& A) s$ B( N6 W* z: w
《邋遢大王》第9集秘密地图之“箱锁”
. J) b2 R1 b) D
       本文之锁非现实之锁,究其原因,或许自己不具备费曼撬锁的天赋,而撇了一眼还算饱满的钱包后我忽然意识到,这可能不是真实原因。对锁匠来说,撬锁不仅是个细致的技术活,还比较费体力。一般而言,我欣赏纯文纯理的东西。我始终期盼一本以撬锁为核心谜题的推理小说横空出世,它具备爱伦坡的趣味性及种种锁具的手绘插图。虽然国内小说《锁侠》、《天锁》以撬锁为主题,可惜语言乏味,内容玄幻离奇,没有丝毫推理解谜的乐趣可言,而日本推理作家法月伦太郎的《失窃的信》则过于简短不成系统。——还好,AVG不乏撬锁谜题。
9 @9 r# F* I1 Y, v: @- q9 x* @. J5 O; M6 ?# H7 f8 `/ K
       讲AVG谜题设计的文章[2]把撬锁谜题归于GUI /Board Puzzles。而在Mechanical Puzzles中它们则属于Sequential Movement Puzzles。 这些小谜题一般比较容易,凭直觉就可以破解,有时需要纸笔作点记录画些草图,也费不了多少时间。 从审美学的角度看,上等好锁的材质、形式和意蕴都要趋于完美。而如果一把锁的数学结构优雅而精致,那么它在意蕴上就已经满足成为上等锁具的条件。注意,我论述的是撬锁的艺术,不要只迷恋GUI的华丽,或者满足于开锁后幼稚的成就感。以博学著称的宝姐姐曾教导我们,“小事上用学问一提,那小事越发作高一层了。不拿学问提着,便都流入世俗去了[3]”。所以我得用点学问提一下,这点学问具体指的是初等群论和图论。群论是数学中描述对称的语言,19世纪初法国数学家Galois(1811-1832)用它完全解决了5次以上代数方程的根式求解问题,20岁时他为一个女人死于决斗。图论起源于Euler(1707-1783)关于哥尼斯堡七桥问题(推广问题俗称一笔画)的一篇论文。下面我通过分析几个经典锁具来展示撬锁之艺术。先摆上第一把锁:
  b3 j! X0 @- H" U* u: e
破箱人_拼图铁箱
% {, g! F, W& C
[attach]24689[/attach]
$ S7 }- `( G) O/ [
       tabris在“AVG谜题探索(01)”[4]中分析过此锁,但文中定理一有错,其实那8个方块的所有排列均可获得。下面给出Jaap的定理,很多旋转类谜题可以由此定理得到其排列的群结构。
) @  @: I6 s7 I% k图上的旋转谜题定理[5]:设图G顶点数为n,每个顶点上放置一个转块,且每一个转块经过某些旋转操作之后都可以到达G的任意一个顶点。若G上存在两个旋转圈使得两圈的公共部分恰为一条路,则除两个特例之外,有3种情形:
5 ^4 F; S, Z3 h7 Q8 |1、若G是圈,群为Zn。' T2 z/ ?2 [0 k6 t! u
2、若G上无偶旋转圈,群为An。
: }% E" _& p( ^8 n/ G3、否则群为Sn。( O. W1 d& m) ?
       其中Zn为n阶循环群,An为n阶交错群,Sn为n阶对称群。两特例如下图所示,它们对应的旋转圈分别为{(1,2,3,4),(2,6,5,4,3)},{(6,1,4,5),(1,2,3,4)},群都与S5同构。
$ A( T1 Z2 q2 @$ v+ Q% c
[attach]24690[/attach]

+ A5 F6 j4 }* x$ H+ i       据Jaap定理,拼图铁箱的群为S25,所有排列均可得到。存在一些旋转谜题不满足定理条件,举一个简单的例子:Hungarian Rings。如下图:
: T, {  p; V" d4 [. l
[attach]24691[/attach]

: [: |+ r, ~& k. w. \所以此定理有待推广。规模较小的旋转谜题用计算代数软件GAP[6]求解只需短短几行代码,使用起来非常方便。可以在[7]下载适用于XP和Vista系统的GAP软件。如果谜题旋转圈较多,输出答案可能很长,操作不方便。最好先凭直觉排好一部分,剩下的子迷题再用软件求解(一般当群为Sn时容易使用此法)。例如,若拼图铁箱与本文截图一致,限制在右下方8个小方格中的子迷题可以用如下三行代码:
) ]: g9 `0 e2 Q+ x. `- s- U5 EG:=Group((1,2,4,3),(3,4,6,5),(5,6,8,7));
- v" k% U( W& [2 wW:=EpimorphismFromFreeGroup(G:names:=["a","b","c"]);
+ ?) d- b# N' p5 WP:=PreImagesRepresentative(W,(3,4,8,7));
6 }* J; }5 h) t& d输出结果: c*b*c*b*c*b*a*b^-1*a*c^-1*b^-1*a*b。
7 S' B  R1 g& A1 _2 I; c4 `现在摆出第二把锁:
4 }, k0 U( W) w  w+ U) ~& L6 f( x
静物_九宫锁
) ?3 z0 w4 @) e6 R$ m
[attach]24692[/attach]

( r1 A7 H( ^+ l/ k       “当我想以一个词来表达音乐时,我找到了维也纳;而当我想以一个词来表达神秘时,我只想到了布拉格(尼采,1844-1900)。”此时此刻,你处于这座神秘之城的地下世界,被潮湿和黑暗裹挟,在迷宫般的下水道中摸索前行。最终一扇铁门挡住去路,门上呈现的就是这么个装置,颓败,锈迹斑斑,结构精巧。放上好不容易收集到的六个小巧的银戒指,装置开启。金属细细的摩擦声与阴郁诡异的背景音乐交织在一起……# Q% S' m9 e* q  \/ \* u

5 I3 U4 Y9 n8 O       把钥匙调整到最顶层最少步数可能为21,你可以编程验证,但这不是我关心的问题。我的问题是,如果让九个滑块位居中央,所有的排列方式都能得到吗?否。九个滑块的变换群为A9,只能得到一半排列。证明思路如下:
5 E3 k( P& R: Q* f, i, r
: h! H& q, ~6 U% Z5 v       先证群中不含奇置换:将处于中央位置的9个滑块的置换群看作是它们与12个空滑块的置换群的子群,群中任一置换为一系列基本置换(每个拉杆的拉动操作对应一个基本置换)的乘积,乘积中每个基本置换与其逆元出现次数相同(保证九宫格复位),故为偶置换。为证群是A9,使用某些基本置换的乘积得到一些旋转圈对应的置换。例如用四个基本置换相乘得到右下角三个滑块的顺(逆)时针旋转(其余滑块位置保持不变)。 构造的旋转圈的并含有九宫格对应图的九个顶点,由Jaap定理即可得证。
, U% t: b4 [  H+ D0 `# r) ]( R% ?% w( @# W
       最初我以为九宫锁为本游戏原创,后来在网上下到Hordern的《Sliding Piece Puzzles》的电子版,插图11中有类似谜题。如下图:左下角谜题为九宫锁的4*4形式。
, X' {8 j, v% {$ J$ f
[attach]24693[/attach]
3 |3 T% r9 l; b& @2 X
第三把锁——静物_吊车锁

3 M4 k( L3 c7 b
[attach]24694[/attach]
+ S: C/ }3 V& X: D0 D- O
       《Sliding Piece Puzzles》插图3中画着蓝精灵的滑块玩具与吊车锁结构一样。 蓝精灵是80后最钟爱的卡通人物之一,一提蓝精灵,那纯净轻快的主题歌似乎又萦绕耳边:“在那山的那边海的那边 有一群蓝精灵 他们活泼又聪明 他们调皮又灵敏……”。可惜这两个家伙的名字我记不起来了。再看插图3,右上角是停车库版的吊车锁,可能某个有眼光的制造商看了《亨利·杜德尼的数学趣题》之停车库趣题后将其做成了玩具。
% @2 P& f9 A8 s6 k
[attach]24695[/attach]
/ X: o' u! {# O  s; `: a/ O
       吊车锁与15-Puzzle等经典的滑块类谜题可以推广到一般形式。Richard M. Wilson[8] 74年证明了无割点图上仅空一格的滑块谜题的置换群定理,但吊车锁是树上空4格的谜题,定理不适用。84年有三个人给出下面的推广定理,应用于吊车锁,群为S6。3 e. ?. x( k/ A% {; x4 P4 J
       图上的滑动谜题定理[9]:设图G顶点数为n。在其中k个顶点上放置滑块,每个顶点放一个,k<n,且每一个滑块都可以到达G的任意一个顶点。则除一个特例外,有3种情形:7 ~% m% J& Y( s% f( s5 W
1、若G是圈,群为Zk。
. K. x; r' |  X. C3 I% d2、若G是二部图,且k=n-1,群为Ak。" T& E/ [) [. L, a2 C% ?
3、否则,群为Sk。 1 N. X; T9 k" q9 T" G
特例[12]如下图所示,群与S5同构。
( Y# c, g, x# d' L$ V' t- J* o; t8 \
[attach]24696[/attach]
/ L$ e  o1 ?" x( X9 Y
       如果图上存在滑块不能到达所有顶点,则谜题能分解成一些子迷题,举例如下图所示,原谜题置换群为子迷题置换群的直积。
. t) Z: X2 o  s6 \7 R
[attach]24697[/attach]
2 i+ s  B; j0 U. w, O8 k
第四把锁——静物_祖父箱子的密码锁

& I, ?0 |. [. C$ g9 m- S
[attach]24698[/attach]

0 x& m6 d' P& j       从符号学的角度看,祖父的箱子放在阁楼里有象征意义:“阁楼(储藏室)代表尘封的回忆或被人忽略的真相,等待有心人去发掘。[10]”此谜题很多人分析过,甚至有用枚举法编程求解的,然而此谜题的推广形式显然有多项式算法。谜题结构很简单,解一个Z4环上的线性方程组既可。下面是具体解法。
/ l; w  h$ F2 Y6 U' k- j; }( [
+ x* i* L, @( |. Z& q  j  e1 R( K       箱子上有五个的转筒,每个转筒按相同顺序刻有四种图案:黑桃、红桃、梅花、方片。初始状态为(方,红,方,黑,梅),若用鼠标点击某个滚筒,它自身朝左或右绕轴转90度的同时会带动另外某两个筒旋转。规律如下表:
0 Z$ ]2 z0 K  |1 Q" e
[attach]24699[/attach]

- _1 b% ^4 s' L3 ?' Y- M7 U; D其中m行n列的文字表示用鼠标点击第m个筒时第n个筒的反应(向*转一下),空则表示不变。
; u) e0 j" S! S& }$ ~* [
[attach]24700[/attach]
7 o4 @! f9 x/ b9 @
注:环上矩阵的初等行变换与数域上矩阵的初等行变换有所不同,当用环中某元素乘某一行时,元素必须是可逆元。
2 S( K8 L$ W( E3 R; N( u+ H下面给出计算代数软件Magma的求解代码。软件有在线版[11],感兴趣者可以把代码贴进去一试。# w% L, H( }% a  _- z- T3 J* m
K:=RingOfIntegers(4);+ b0 a+ }* H8 e  G$ E, Z  J0 l
A:=Matrix(K,5,5,[[1,3,1,0,0],[1,1,0,0,3] ,[0,3,1,3,0], [3,0,0,1,1] ,[0,0,3,1,1]]);
+ @; H# q1 ~0 `# g* }$ P) o1 ?6 ^b:=Vector(K, [0,2,2,1,3]);# p5 T0 G$ e$ W( m4 `
V:=Solution(A,b);
7 g, H  h' A; _% [2 g; \) K% e2 {V;
4 Z& M$ t, |- {6 q3 J$ o: q7 x参考文献9 R+ f  V2 f) d  W
[1]《费曼手札》 P60 三联书店 “猫咪”为费曼对妻子阿琳的昵称。
5 _0 g: [5 [2 V0 h, @; s/ r8 f[2] Application of Puzzle Theory    http://junk.dk/puzzle/#gui
! H4 n7 `6 ^0 f* P6 Q0 B, j1 h[3]《红楼梦》 P765人民文学出版社
& o0 g1 Y6 E" H) t[4] AVG迷题探索(01) https://www.chinaavg.com/read.php?tid=8281
( t! s- X9 W! P# y( D: T[5] Rotational Puzzles on Graphs  http://www.jaapsch.net/puzzles/graphpuzz.htm
& D2 J/ L1 ], Y; n+ S[6] http://www.gap-system.org  _7 a+ I! d) H7 t3 f. e
[7] http://www.math.colostate.edu/~hulpke/CGT/education.html
) m0 o9 q  O2 a! ?) i[8] Richard M. Wilson.  Graph puzzles, homotopy, and the alternating group 74
- u! n/ I' `- ]; ], L[9] Daniel Kornhauser, GaryMiller, and Paul Spirakis.   Coordinating pebble motion! X- z' G. O/ x6 L+ p
    on graphs, the diameter of permutation groups, and applications
5 g  K- a' C5 ][10]《符号与象征》P235 三联书店1 e: S' t  @5 n4 t
[11] http://magma.maths.usyd.edu.au/calc/6 J% K8 n  R" S2 x5 F
[12] Alex Fink and Richard Guy  Rick’s Tricky Six Puzzle: S5 Sits Specially in S6
作者: deducemath    时间: 2010-5-29 08:33
本帖最后由 deducemath 于 2011-12-16 13:44 编辑
3 @3 S: T6 T8 }# O+ q* M1 F1 y  ^' _* ~0 {  X; d3 w8 K+ \: I
内容已移至一楼。
作者: williamzmk    时间: 2010-5-29 10:56
耐心等待第二集。6 ^% f; q! a# \3 b' [! H8 {: Y0 a

$ g0 b* C$ U" ~楼主做了不少研究。涉及群论的地方,的确有些不好懂了。
* D; B. I  \" i; |8 [看来本集讨论的是解锁的艺术。建议楼主以“科普”的心态写这文章,会让更多的人理解的。# ^9 _% o& P. O- }
我觉得给出参考资料的做法很好。: M; Z) E; C6 |1 c2 J5 M/ u* H
我先去研究一阵子……
作者: jimi    时间: 2010-5-29 14:16
文章很好,不过我讨厌数学…………
作者: 沙家浜的渔夫    时间: 2010-5-29 19:31
很多开锁的形式不一样,融合了各种的谜题形式。但是万变不离其宗
作者: tj_tina    时间: 2010-5-30 22:05
[s:72],佩服楼主,不过解个锁这么费劲??
作者: ocean    时间: 2010-6-13 20:39
这是描述锁的原始模型。不过老实说。AVG有时候最大的败兴就是解锁之类的谜题。大多数的锁设计都是以新颖和难度为第一要素的。其实为嘛不以趣味为第一要素?至少哪怕失败了也比较有趣味。否则太打击玩家的积极性了。。
作者: cielo    时间: 2010-6-27 18:37
从mf8过来支持!
/ H3 [% A6 }# r( Y: c7 m最近要考试,有空再细看[s:101]
作者: kinglom    时间: 2011-3-3 17:27
解锁时从未联想到要用数学思想来解……
作者: liobin    时间: 2011-3-4 11:53
LZ好高深 佩服[s:72][s:75]
作者: zyy81810    时间: 2011-3-5 23:19
很不喜欢LZ最后一句:“对能欣赏他的人来说它是艺术,对其他人是什么却不知道了”7 N, u$ H0 [2 ^& a# s
这种语气口吻,明显是一种藐视众生,觉得自己是阳春白雪的感觉。: y7 F, t( H# J5 U
另外我再说一句,你这不是艺术,你这就是数学。当然在数学家眼里,优雅精妙的数学,也是一种艺术,但我觉得你这点儿程度的数学,还算不上艺术。
& o' ?* g& }! n$ c! u$ k注意这里是冒险解密游戏网,重点上是”游戏“两个字。大多数人,且不谈是否玩冒险游戏的,都不是数学专业的。你这么噼里啪啦的说了一通,其实本意并不是想让大多数游戏者看懂,说白了就是在卖弄。
9 L" `: ]8 q2 Z7 w" k; G# N; B+ d+ n而且你这可以说是,”我在玩游戏的人当中数学最好,我在学数学的人当中,游戏玩得最好“
- d( L7 }/ y1 i* D" g& ^实在是见多了好些人在一种类型的论坛,高谈阔论自己熟悉、在行和得意但却完全不相关的另一种事物,有感而发。
作者: tengbin    时间: 2011-3-10 15:56
看不懂啊,[s:75]
作者: lzx0615    时间: 2011-3-11 09:14
大家玩AVG游戏就是冲着能玩到各种解谜类型的游戏吧,能把开锁玩到这种境界的楼主 太让我佩服了!![s:68]  毕竟咱从小就偏科,看到数学好的就崇拜啊[s:69]
作者: 游戏菜鸟    时间: 2011-3-21 11:43
    数学——我记得曾经见过!现在用的最多的小学一二年级(大概吧)就学过了,加减法而已,还是100以内的(超过的刷卡)。
8 s. @/ }4 h9 Y8 @9 @9 a7 J    AVG与我见是一种休闲方式,就像看个电影、逛逛街,可以暂时不用记起烦心事。如果真把谜题搞清原理,就好像我喝个水要知道经过几道过滤、吃个面要知道怎么育种。“吾生也有涯,而知也无涯。以有涯随无涯,殆己。”
作者: horus    时间: 2011-4-5 21:18
解锁的时候完全没想到数学。。。。。另外本人数学非常差。! {. d5 y( f) Q, Z) p
很佩服LZ能研究的那么深入,长见识了谢谢啊8 E( a* X; ]$ f6 N0 L

作者: superheroes    时间: 2011-5-24 16:53
做为一个中学生 压力很大
作者: OOYOKI    时间: 2011-6-21 14:31
呃...解个迷也有这么多学问...没想过 都是乱点....而且 偶讨厌数学......
作者: reasoning    时间: 2011-12-16 01:17
我讨厌看见数学方程。。。
作者: 鹦鹉螺    时间: 2011-12-17 10:47
从来都是乱点的我鸭梨好大……
作者: deducemath    时间: 2011-12-28 15:29
回复 bonjovi_king 的帖子: x5 e1 `+ z2 S* v

7 U* N4 T' l4 g8 p+ t4 U1 C2 t分析一般性原理不是将问题复杂化,而是更清晰地欣赏一类谜题内在的对称结构。如果只想从破解形态各异的具体锁具中娱乐一番,这些原理自然是无意义的。
作者: 沙漠在行走    时间: 2012-2-24 11:31
楼主大人您的数学实在是太好了!像我这样的人除了膜拜还是膜拜顶礼膜拜。) v* [5 k0 z; x" D$ q8 D
但是,实话实说,真是没有耐心更没有智商看完呀。
作者: Charleslee001    时间: 2012-2-24 15:12
思路对的,AVG里这类锁其实群的结构很简单,倘若变换群的都要拿代码来解,恐怕失去游戏的乐趣。不过参考文献里的两个网站值得看看~




欢迎光临 冒险解谜游戏中文网 ChinaAVG (https://chinaavg.com/) Powered by Discuz! X3.2