设为首页收藏本站官方微博

[讨论]千奇百怪的Still Life迷题解法

[复制链接]
查看: 8967|回复: 25
打印 上一主题 下一主题

[讨论]千奇百怪的Still Life迷题解法

跳转到指定楼层
楼主
发表于 2005-5-26 18:07 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

[讨论]千奇百怪的Still Life迷题解法

<P>在游侠转了一下,发现still life里迷题的解法实在五花百门,挑了个我觉得比较“恐怖”的迷题解法,贴在这里给大家看看,也欢迎大家讨论分享自己的still life迷题解法[em01]</P>0 h, P7 U8 k# u6 B' x# i
<P>***********************************************************</P>6 Q$ _1 I" q8 N% @# k2 j9 [
<P><FONT color=#ff0000><b>阁楼箱子的迷题</b></FONT></P>5 d& i: H6 J' i; }) |" V! j( j) J( v) T
<P><FONT color=#2222dd>出自游侠[swiftxie]的解法:</FONT></P>& ~0 h: c" s; W2 w: }5 q
<P>这个迷题其实本身是很不错的,只是,谁知道要什么状况才可以打开箱子呢?* y, f/ v; b/ V. ]. u
如果给我明确的目标,那么过程的思考是很有乐趣的,6 y2 c/ E9 z2 e- s
可是没有明确的目标,谁知道阿?我于是第二次看了攻略,就看了要方方红方方才可以开。# w2 g- V; ^' E7 m; N
然后是自己去摸索着转成方方红方方了。5 J; d; d0 K6 n' }/ h! q* F
摸索的过程还是比较有趣的,可以运用各种方法。
4 V) C6 W! G3 P  d3 |也可以像我一样,模型化,编了个JAVA小程序解决。
$ @5 o* H8 ^& E当然我没有考虑最短路径,没有考虑重复的“环”情况。
: F; C) Y. X, m0 U/ a8 r那要编写的代码太多了,呵呵。反正只要求一个可接受的解就OK了么。
/ e) M5 B# W. f3 K4 z如果是自己解,难度也不会太大,可以观察转动每个轴的变化情况,7 s) R+ n: `  x5 l9 z1 v
用倒推的方法,3,4步一考虑。就是先跳3步,然后考虑,如果要这样,那么前三步大概如何。  y7 X, |; t' x7 r
在尝试的过程中,会发现一些“环”,就是若干步骤重复执行,会让状况回到开始。' A/ k" l. {/ e/ J7 Q) u8 {6 Z
这些环可以通过记忆避免,当然若是编程序,也无所谓环了。5 g8 Z, M. b* W: g
(我当时的做法是50步一算,然后重新算一次50步,直到找到50步以内的路径,% x  o9 ]  P; P! K
这样,环最长,不会超过10步吧。)</P>! y1 K; n+ t, u3 h3 ~4 M
<P><FONT color=#3300ff>出自游侠[raycrisis]的解法:</FONT></P>* j' t' X) P! _9 t  @( b# v
<P>没必要用JAVA编程序啊。$ Z; W. i' z( W
这是个矩阵求解的题目。8 y! k& \2 s2 b
用个矩阵除法一下就出来了。4 {  o2 B, m1 X& K$ ^
5个开关,4个花色。2 D' S, j" H9 y8 Q4 k
4个花色风别代表4种状态。可设方块为1、梅花为2、红桃为3、黑桃为4。
. T7 \( R( r3 U8 d- }: S5 ]每个开关使用后,右转可代表1,左转可代表-1、不转代表0。% K7 |# m2 O  V$ D8 y6 J
可得5X1的初始状态矩阵A,每个开关使用后的状态可得到一个5X5的矩阵B,每个开关需要使用的次数是一个1X5的矩阵X。要求开锁的状态也是一个5X1的矩阵C。
8 _; d$ ^4 \' |实际的方程就是A+X*B=C;  k! [" F, k" S4 N& M
X=(C-A)/B;就可得到每个开关要使用的次数了。</P>
1 B. R7 s3 ~, ~3 Y, A" C+ M2 H  _<P>" K* H8 ~- k; g2 N# N
得到的矩阵,如果是[0 -1 -1 -1 1]0代表不要使用,-1就是用3次(因为周期是4嘛),1就是用一次了啊。
$ }0 ~4 h9 W( h7 ^这个矩阵很容易就能解出来。</P>
- W2 ^$ Q6 h; s! `<P>可是本人比较懒,用了matlab。</P>
( }, A( m8 I/ s0 M+ ]9 c<P>***********************************************************</P>
0 M* p& D! p7 J: I& B/ ]& k  k& z( o<P>真是恐怖啊,连JAVA和矩阵都出动了![em06]佩服之至!</P>
; i; d& h" ?3 e2 h+ R<P>大家还有一些别的迷题的思路吗?欢迎畅所欲言[em10]/ e% r( |' ?$ `( G3 v8 W/ C5 g
</P># P! I% n0 e, {! @
<P>( T: Y2 e1 c6 O; `% Q8 h
</P>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2005-5-26 19:11 | 只看该作者
JAVA我不会啊,矩阵我们也未学过,而且我数学とても下手だね……
5 r! m; I; V3 c, A1 }; ^# B6 ~! r' [+ W6 l
我解这道题的时候,老是只能使红心的其中一边变成两个相同的花式,但是另一边就不能,尝试过和同房一个同学用画图表示,但越画越麻烦,而且他数学比我还要下手,所以我最后还是砰砰运气啦……
8 [! t/ G7 e8 A0 ^# @3 v2 j! [3 n3 Z3 [! g$ n
不过我突然想起这道谜题有点像 Syberia 2 里面拆分火车车厢卡锁的那个机关,那个机关也是有五个活动轴,而且拉动一个就会影响另外几个,那个谜题我就是用画图列举情况的方法来解决的,但是那个谜题相比要简单一些,因为每个轴只有“升、降”两种情况,而still life这里每个轴有四种情况的……5 {, {4 S  @  z$ }3 M
* V' x) W$ r0 `+ ]0 W+ [( n4 b2 l" ]
U姐你都没说你自己是用什么方法解出来的耶?
回复 支持 反对

使用道具 举报

板凳
发表于 2005-5-26 20:09 | 只看该作者
游侠那些人甚至有用编程解阁楼密码箱的[em24]
回复 支持 反对

使用道具 举报

地板
发表于 2005-5-27 02:40 | 只看该作者
我发现只有那些数学头脑很强的人的思维才会令阿U说“佩服之极”的
+ v2 c( @7 i3 }, Y& @% N0 }  g
# o/ e  R: a3 Q7 U( C再去研究了这个阁楼宝箱谜题一翻,发觉真的不是画图可以解决问题的,除非画几十个图吧  t! O9 }; w1 @6 [+ v. S7 Q; T
总之遇到这类排列组合的谜题,我真的宁愿碰运气好过了,反正我只是见到5个轴的转动方向是以中轴为对称的,但是再想下去就要爆血管,所以放弃,阿U你快说你是找什么规律解出来的?倒推吗?
) g2 \3 W! o2 y5 M/ |7 b% C# \# v3 Q
可惜俺高中时老师没教 矩阵 耶……
$ h3 z# D8 r) _7 y1 c没法了,习惯了应试教育,想学的又不考,不考的谁想学?[em01]
回复 支持 反对

使用道具 举报

5#
发表于 2005-5-27 08:50 | 只看该作者
<P>矩阵是高等数学才学的,高中没有</P><P>不过应用简单的排列组合对应关系也可以很容易解开阁楼锁谜题</P>
回复 支持 反对

使用道具 举报

6#
发表于 2005-5-27 09:30 | 只看该作者
对擅长数学的人而言这种谜题就像做数学题,但用纯数学的方式解谜题我觉得就丢了游戏的乐趣了,还是喜欢用自己的方式……
回复 支持 反对

使用道具 举报

sliverblue 该用户已被删除
7#
发表于 2005-5-27 11:08 | 只看该作者
我高中时候的那本《代数》就有矩阵啊……没记错的话……[em01]
回复 支持 反对

使用道具 举报

8#
发表于 2005-5-27 21:21 | 只看该作者
<P>厉害……</P><P>这种谜题我都是猜着蒙出来的,没想过找最优解,平均10分钟搞定……</P>
回复 支持 反对

使用道具 举报

9#
发表于 2005-5-27 22:54 | 只看该作者
<DIV class=quote><B>以下是引用<I>rb003</I>在2005-5-27 21:21:20的发言:</B> 2 e9 }# ~" e, ^

2 B2 ^) j# A$ S# O
, O. C* ^! e* I* ^( a<P>这种谜题我都是猜着蒙出来的,没想过找最优解,平均10分钟搞定……</P></DIV>
0 L; y' I  g0 K9 A4 T2 i4 y  H<P>啊..........这句话不要随便说啊.......7 ^0 R  W9 `+ q# N' [; C
# p$ o, C  ]* |$ n& j/ l( @
因为类似的话我对某人也说过啊,3 x5 m8 b! H+ H" g4 p

* U* K$ h, r; `( `* r- G结果就惹来大祸了.........[em01]</P>- Y6 H' H6 o) G1 e7 @
[此贴子已经被作者于2005-5-27 22:57:16编辑过]
回复 支持 反对

使用道具 举报

10#
发表于 2005-5-28 01:24 | 只看该作者
<P 0cm 0cm 0pt\">既然讨论我就来说说我的解法,没有游侠那人那么高深,一般人容易理解,就是麻烦点。
) X) ~" O& M& A5 S% Z# U& Y4个花色风别代表4种状态。设方块为0、梅花为1、红桃为2、黑桃为3
# K) x6 r( Q. K; V2 L3 M6 ~搞一个数组存放箱子初始状态:int[] a = new int[] {0,2,0,3,1};7 i/ M( g1 J- L3 q4 f
最后我们要得到这样的结果:a={0,0,2,0,0}
* y; Z- l! G' {# h  R$ t有5个开关代表5种情况,后面要排列组合用到。每个开关使用后,右转可代表1,左转可代表-1、不转代表0。以下是每转一次应该得到的新的结果。
. [% }) `' W3 K& I4 J(a +1) % 4 代表是右转+1       (a +3) % 4 代表是左转-1<p></p></P><P 0cm 0cm 0pt 84pt\">
) `8 S' @7 s. S9 d* x* icase 0:<p></p></P><P 0cm 0cm 0pt\">                                   a[1] = (a[1] +1) % 4;<p></p></P><P 0cm 0cm 0pt\">                                   a[2] = (a[2] +3) % 4;<p></p></P><P 0cm 0cm 0pt\">                                   a[3] = (a[3] +1) % 4;<p></p></P><P 0cm 0cm 0pt\">                                   break;<p></p></P><P 0cm 0cm 0pt\">                            case 1:<p></p></P><P 0cm 0cm 0pt\">                                   a[1] = (a[1] +1) % 4;<p></p></P><P 0cm 0cm 0pt\">                                   a[2] = (a[2] +1) % 4;<p></p></P><P 0cm 0cm 0pt\">                                   a[5] = (a[5] +3) % 4;<p></p></P><P 0cm 0cm 0pt\">                                   break;<p></p></P><P 0cm 0cm 0pt\">                            case 2:<p></p></P><P 0cm 0cm 0pt\">                                   a[4] = (a[4] +3) % 4;<p></p></P><P 0cm 0cm 0pt\">                                   a[2] = (a[2] +3) % 4;<p></p></P><P 0cm 0cm 0pt\">                                   a[3] = (a[3] +1) % 4;<p></p></P><P 0cm 0cm 0pt\">                                   break;<p></p></P><P 0cm 0cm 0pt\">                            case 3:<p></p></P><P 0cm 0cm 0pt\">                                   a[1] = (a[1] +3) % 4;<p></p></P><P 0cm 0cm 0pt\">                                   a[4] = (a[4] +1) % 4;<p></p></P><P 0cm 0cm 0pt\">                                   a[5] = (a[5] +1) % 4;<p></p></P><P 0cm 0cm 0pt\">                                   break;<p></p></P><P 0cm 0cm 0pt\">                            case 4:<p></p></P><P 0cm 0cm 0pt\">                                   a[4] = (a[4] +1) % 4;<p></p></P><P 0cm 0cm 0pt\">                                   a[5] = (a[5] +1) % 4;<p></p></P><P 0cm 0cm 0pt\">                                   a[3] = (a[3] +3) % 4;<p></p></P><P 0cm 0cm 0pt\">                                   break;<p></p></P><P 0cm 0cm 0pt\">然后用多重循环对5种情况进行排列组合,最后判断看结果a={0,0,2,0,0} 成立否,不成立再增加循环次数,我试到10的时候得到结果的,就是10重循环。办法有点笨。矩阵没会用,数学不好,汗。。。<p></p></P>
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

冒险解谜游戏中文网 ChinaAVG

官方微博官方微信号小黑屋 微信玩家群  

(C) ChinaAVG 2004 - 2019 All Right Reserved. Powered by Discuz! X3.2
辽ICP备11008827号 | 桂公网安备 45010702000051号

冒险,与你同在。 冒险解谜游戏中文网ChinaAVG诞生于2004年9月9日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

快速回复 返回顶部 返回列表