<P>在游侠转了一下,发现still life里迷题的解法实在五花百门,挑了个我觉得比较“恐怖”的迷题解法,贴在这里给大家看看,也欢迎大家讨论分享自己的still life迷题解法[em01]</P>
) d, w3 @& l( R! y7 r, X<P>***********************************************************</P>
, _. t! [1 d8 a% ]<P><FONT color=#ff0000><b>阁楼箱子的迷题</b></FONT></P>; T o( P- E- J, ?5 g4 x. \
<P><FONT color=#2222dd>出自游侠[swiftxie]的解法:</FONT></P>
9 D0 Q' _3 G2 A3 z" R' j$ \! \: P<P>这个迷题其实本身是很不错的,只是,谁知道要什么状况才可以打开箱子呢?' L, I1 E+ l5 w
如果给我明确的目标,那么过程的思考是很有乐趣的,7 a) b; A8 ^; s4 U8 w3 {% R
可是没有明确的目标,谁知道阿?我于是第二次看了攻略,就看了要方方红方方才可以开。' W# |$ G; G2 [7 E, ] l
然后是自己去摸索着转成方方红方方了。 @8 G. d; S& X {( V
摸索的过程还是比较有趣的,可以运用各种方法。/ r' z# H& D1 x2 o5 ]
也可以像我一样,模型化,编了个JAVA小程序解决。
. ?* H: C) g3 A当然我没有考虑最短路径,没有考虑重复的“环”情况。
e# w* m* ~4 L T9 j3 j+ [- Q3 e那要编写的代码太多了,呵呵。反正只要求一个可接受的解就OK了么。* y: z! _0 g/ Z! p
如果是自己解,难度也不会太大,可以观察转动每个轴的变化情况,* I( `8 [/ \$ W- m: N+ f, R1 I
用倒推的方法,3,4步一考虑。就是先跳3步,然后考虑,如果要这样,那么前三步大概如何。' P# A2 p* n; ~
在尝试的过程中,会发现一些“环”,就是若干步骤重复执行,会让状况回到开始。
! ^6 X' @8 j A, t, g* e6 E3 v) w这些环可以通过记忆避免,当然若是编程序,也无所谓环了。$ ?" O. Z8 H) Y! m& Q8 ?+ b
(我当时的做法是50步一算,然后重新算一次50步,直到找到50步以内的路径, a4 i0 e/ `7 ~8 h
这样,环最长,不会超过10步吧。)</P>6 C- D( |. G3 @! |
<P><FONT color=#3300ff>出自游侠[raycrisis]的解法:</FONT></P>
. l& a3 G3 a+ l! E* Y/ ^<P>没必要用JAVA编程序啊。' }+ P- K6 B* c$ b/ L5 i0 k
这是个矩阵求解的题目。
9 u; ~7 ^; w+ y Q$ q8 m用个矩阵除法一下就出来了。
0 G+ F, h% N0 `1 w1 e. B$ O5个开关,4个花色。3 c1 u( i7 g0 V! Z4 Q8 Z
4个花色风别代表4种状态。可设方块为1、梅花为2、红桃为3、黑桃为4。
5 v( u- _1 s) B, H5 B7 S$ d每个开关使用后,右转可代表1,左转可代表-1、不转代表0。8 ]0 C7 O1 C0 m v& V' t* u
可得5X1的初始状态矩阵A,每个开关使用后的状态可得到一个5X5的矩阵B,每个开关需要使用的次数是一个1X5的矩阵X。要求开锁的状态也是一个5X1的矩阵C。
0 i O. v0 k" o' A实际的方程就是A+X*B=C;
0 p* m8 X, q/ h @) gX=(C-A)/B;就可得到每个开关要使用的次数了。</P>4 ]. ? ^( j8 g
<P>5 _8 {0 g! c8 U* f, U# a
得到的矩阵,如果是[0 -1 -1 -1 1]0代表不要使用,-1就是用3次(因为周期是4嘛),1就是用一次了啊。
5 I" l% q! [0 N5 c3 {* T8 c这个矩阵很容易就能解出来。</P>" o1 w& ?2 n. K5 C j( S! R2 a
<P>可是本人比较懒,用了matlab。</P>3 _5 [: ?, A8 F4 d8 I
<P>***********************************************************</P>! a8 m: S& H3 U8 W1 v* J
<P>真是恐怖啊,连JAVA和矩阵都出动了![em06]佩服之至!</P># F8 }+ d" T) y+ G* V3 |% a$ i7 b# P
<P>大家还有一些别的迷题的思路吗?欢迎畅所欲言[em10]$ o% d. O7 s4 _; s* D
</P>$ @4 d" x8 T4 N% z$ K% R: I
<P>
8 L/ }! N9 @& l( f </P> |