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

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

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

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

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

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

<P>在游侠转了一下,发现still life里迷题的解法实在五花百门,挑了个我觉得比较“恐怖”的迷题解法,贴在这里给大家看看,也欢迎大家讨论分享自己的still life迷题解法[em01]</P>
% g6 o& E4 r3 q4 C0 Y  U' J$ u<P>***********************************************************</P>
. i1 l* H5 s# N# u! W; N% ?  C- X8 P<P><FONT color=#ff0000><b>阁楼箱子的迷题</b></FONT></P>; _; z& s" g1 l$ O
<P><FONT color=#2222dd>出自游侠[swiftxie]的解法:</FONT></P>
8 ~4 s: z: x# ~. F; Q<P>这个迷题其实本身是很不错的,只是,谁知道要什么状况才可以打开箱子呢?; j# n* Q+ Q/ v7 ~8 k
如果给我明确的目标,那么过程的思考是很有乐趣的,, J' |; o0 t* y/ b3 `% u% ?+ U+ h
可是没有明确的目标,谁知道阿?我于是第二次看了攻略,就看了要方方红方方才可以开。6 ]; z% q' H8 F$ ?
然后是自己去摸索着转成方方红方方了。- y! v9 I; O* n2 q. o! C2 {% p
摸索的过程还是比较有趣的,可以运用各种方法。! ^4 _/ w1 \3 U8 U! X- a* I  T& x( f
也可以像我一样,模型化,编了个JAVA小程序解决。
" y4 l  _8 j1 P9 Y当然我没有考虑最短路径,没有考虑重复的“环”情况。7 \) ~- H1 K# o; ~  S' }
那要编写的代码太多了,呵呵。反正只要求一个可接受的解就OK了么。0 p: B: J& }. y! s, f* q) o. v0 Z
如果是自己解,难度也不会太大,可以观察转动每个轴的变化情况,
; B/ t1 }& T6 Z' M2 O用倒推的方法,3,4步一考虑。就是先跳3步,然后考虑,如果要这样,那么前三步大概如何。
9 [; j+ G" l6 r9 h0 ?9 U在尝试的过程中,会发现一些“环”,就是若干步骤重复执行,会让状况回到开始。
$ y  }- u+ P# ^/ Z9 b6 h6 j这些环可以通过记忆避免,当然若是编程序,也无所谓环了。) [) a  r. O; |6 ]! ~! h
(我当时的做法是50步一算,然后重新算一次50步,直到找到50步以内的路径,
" ~; q7 u2 z! U1 s这样,环最长,不会超过10步吧。)</P>
1 X$ o9 I, a- P" U/ i<P><FONT color=#3300ff>出自游侠[raycrisis]的解法:</FONT></P>  l) y& Z5 J- b, s
<P>没必要用JAVA编程序啊。
! ~3 k0 ^' v+ x这是个矩阵求解的题目。
' {& H: \5 P+ b9 ^用个矩阵除法一下就出来了。
" X! T; r6 g9 ~3 n7 h( c5个开关,4个花色。4 d4 _" o5 j0 N' h: h' D& H9 D
4个花色风别代表4种状态。可设方块为1、梅花为2、红桃为3、黑桃为4。5 H" S; o7 M% T4 A  a
每个开关使用后,右转可代表1,左转可代表-1、不转代表0。
% Y4 ?& _9 [' c7 V  |4 j可得5X1的初始状态矩阵A,每个开关使用后的状态可得到一个5X5的矩阵B,每个开关需要使用的次数是一个1X5的矩阵X。要求开锁的状态也是一个5X1的矩阵C。
& _+ m4 y6 i4 X- C实际的方程就是A+X*B=C;0 ]* l8 n: v; R; c/ }2 K% `- ?- ~6 c
X=(C-A)/B;就可得到每个开关要使用的次数了。</P>
2 L$ B) a6 d+ m* E) f# v/ a) d<P>
" o. u  p: k0 x! ]- n得到的矩阵,如果是[0 -1 -1 -1 1]0代表不要使用,-1就是用3次(因为周期是4嘛),1就是用一次了啊。6 h( d. B2 P* O* _
这个矩阵很容易就能解出来。</P>
7 a, Z* m0 X# \$ C2 l( H: }<P>可是本人比较懒,用了matlab。</P>
6 B; X/ L) ~& g2 v: H<P>***********************************************************</P>  t+ a' Y0 I3 m6 K: Z( [# U: g
<P>真是恐怖啊,连JAVA和矩阵都出动了![em06]佩服之至!</P>
, ~5 D% h) |! R/ C8 w& l- T8 a' i2 J7 ]7 c<P>大家还有一些别的迷题的思路吗?欢迎畅所欲言[em10]& n  d( G% O# H9 k6 {# a9 O
</P>
) V/ H5 {! x& b* e; `: P<P>- l% @% {+ V7 Y7 ~( _2 S
</P>
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 很美好很美好 很差劲很差劲
回复

使用道具 举报

沙发
发表于 2005-5-26 19:11 | 只看该作者
JAVA我不会啊,矩阵我们也未学过,而且我数学とても下手だね……
+ D3 @. R4 }: a% C# H' D
/ N9 F2 O8 h1 E1 `. V我解这道题的时候,老是只能使红心的其中一边变成两个相同的花式,但是另一边就不能,尝试过和同房一个同学用画图表示,但越画越麻烦,而且他数学比我还要下手,所以我最后还是砰砰运气啦……
, x  y; }# O' Q; D. [" {# A& C$ \' e& R+ B! @/ h; t
不过我突然想起这道谜题有点像 Syberia 2 里面拆分火车车厢卡锁的那个机关,那个机关也是有五个活动轴,而且拉动一个就会影响另外几个,那个谜题我就是用画图列举情况的方法来解决的,但是那个谜题相比要简单一些,因为每个轴只有“升、降”两种情况,而still life这里每个轴有四种情况的……
( h1 s" }/ a& i' L" l' D+ s& F' |% k1 y( P5 T/ i1 _5 j5 Y
U姐你都没说你自己是用什么方法解出来的耶?
回复 支持 反对

使用道具 举报

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

使用道具 举报

地板
发表于 2005-5-27 02:40 | 只看该作者
我发现只有那些数学头脑很强的人的思维才会令阿U说“佩服之极”的
( X" N( T2 F' x8 Y7 n* M& @+ {5 n1 T6 N( |! c3 |* L7 g7 A% ^) [
再去研究了这个阁楼宝箱谜题一翻,发觉真的不是画图可以解决问题的,除非画几十个图吧
+ I: o1 w0 F( R! Z  t- q! o$ T总之遇到这类排列组合的谜题,我真的宁愿碰运气好过了,反正我只是见到5个轴的转动方向是以中轴为对称的,但是再想下去就要爆血管,所以放弃,阿U你快说你是找什么规律解出来的?倒推吗?
& S" e) C/ X* E. a! W9 k8 n4 o- v
8 C  x. T8 u1 f2 r可惜俺高中时老师没教 矩阵 耶……# A) q- z. Y/ i! d2 [
没法了,习惯了应试教育,想学的又不考,不考的谁想学?[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> ( L* B/ S6 {. \8 N2 N$ I

: y8 u$ X/ j) b7 W4 Z  X4 q6 J& ?1 W% `# `  N" F$ |; p
<P>这种谜题我都是猜着蒙出来的,没想过找最优解,平均10分钟搞定……</P></DIV>
0 }2 I* K8 }6 U% R6 ~0 _0 s2 ~4 S  W<P>啊..........这句话不要随便说啊.......& {5 `. J1 i) y8 w

9 }  j1 G) f+ ?) v9 S* `3 I因为类似的话我对某人也说过啊,4 S+ B: F7 v/ @$ J" J7 t

% ?- Q; S# ]2 D( {' z5 o/ F8 \1 n4 K结果就惹来大祸了.........[em01]</P>9 G4 M5 b- O/ O5 P
[此贴子已经被作者于2005-5-27 22:57:16编辑过]
回复 支持 反对

使用道具 举报

10#
发表于 2005-5-28 01:24 | 只看该作者
<P 0cm 0cm 0pt\">既然讨论我就来说说我的解法,没有游侠那人那么高深,一般人容易理解,就是麻烦点。/ b( p3 I+ b1 h2 L7 v
4个花色风别代表4种状态。设方块为0、梅花为1、红桃为2、黑桃为3$ e" G6 s6 X2 i6 V* c7 X0 p
搞一个数组存放箱子初始状态:int[] a = new int[] {0,2,0,3,1};/ N0 {! q( }* u; o( c* T
最后我们要得到这样的结果:a={0,0,2,0,0}
( P) ^8 O: l  |; M: ~有5个开关代表5种情况,后面要排列组合用到。每个开关使用后,右转可代表1,左转可代表-1、不转代表0。以下是每转一次应该得到的新的结果。6 V: y( O9 u3 m5 E! D6 g
(a +1) % 4 代表是右转+1       (a +3) % 4 代表是左转-1<p></p></P><P 0cm 0cm 0pt 84pt\">5 n6 o" e1 B' _* [) M
case 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日,是全球华人共同的冒险解谜类游戏家园。我们致力于提供各类冒险游戏资讯供大家学习交流。本站所有资源均不用于商业用途。

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