扑克魔塔二106—108层的踩灯问题难倒了不少玩家。现公布一种完全破解方案。(是不是晚了点?)
这个问题表面上是个小游戏,实质上却是个数学问题。
本解法基于以下原理:
1.在同一个位置踩两次等于不踩。由于按回车键可以在原地改变灯的亮灭,所以问题转化为在每一个格子中是踩(踩奇数次),还是不踩(踩偶数次)?
2.在某位置踩一次只改变周围灯的亮灭。所以按一种方法踩完后某个灯的亮灭情况变化只与在该格与周围各格踩的次数总和有关,奇数则改变,偶数不变。
3.每个灯只有亮、灭两种状态,每格踩与不踩也只有两种状态。
因此,求解该问题相当于求解一个逻辑方程组:Aij= Xij+ Xi-1j+ Xi+1j+ Xij-1+ Xij+1+(1≤i,j≤n,(n为踩灯游戏的阶数)假如i+1,i-1,j+1,j-1中有超出范围的,就将这一项去掉。)
提示:上式中“+”不表示加法,而是用来代替逻辑运算“异或”的符号(电脑里找不到这个符号)。下同。
(什么?对逻辑代数一窍不通?……略作解释:所谓异或,就是参与运算的两个二进制数,相同得1,相异得2;或0+0=0,1+1=0,1+0=1,0+1=1。该运算满足交换律和结合律。)
这个方程组是n*n阶的,所以随n增大运算量迅速增大。好在解法是程序化的,交给电脑解决就行了。
下面是运算结果:
先解释一下算式的含义。数字表示格子的位置,自左至右,自上而下排布:
1 2 3 1 2 3 4 1 2 3 4 5
4 5 6 4 5 6 7 4 5 6 7 8
7 8 9 8 9 10 11 9 10 11 12 13
12 13 14 15 14 15 16 17 18
19 20 21 22 23
等式左边的数字决定在该格是该踩还是不踩。根据等式右端的式子计算,算得1表示“踩”,0表示“不踩”。
等式右边的数字是开始踩之前该处的灯是亮还是灭的代号。
注意注意!!!如果你最终想把灯都踩灭,则亮为1,灭为0。
如果你最终想把灯都踩亮,则亮为0,灭为1。(搞错了算不出来别来找我!)
3*3 一定有唯一解:
1=1+3+6+7+8
2=5+7+8+9
3=1+3+4+8+9
4=3+5+6+9
5=2+4+5+6+8
6=1+4+5+7
7=1+2+6+7+9
8=1+2+3+5
9=2+3+4+7+9
4*4 有解:2+3+4+5+7+9+10+13=0,1+2+4+8+9+10+11+14=0,1+3+4+5+10+11+12+15=0,1+2+3+6+8+11+12+16=0
有解时共有16解。在此情况下取13、14、15、16为自由变量(为简便起见均取为0)。得到一个解为:
1=1+2+5+7+10+11+12
2=1+2+3+8+9+10+12
3=2+3+4+5+9+11+12
4=3+4+6+8+9+10+11
5=1+3+5+7+8+9+11
6=4+7+8+12
7=1+5+6+9
8=2+4+5+6+8+10+12
9=2+3+4+5+7+9+10
10=1+2+4+8+9+10+11
11=1+3+4+5+10+11+12
12=1+2+3+6+8+11+12
13=0
14=0
15=0
16=0
由自由变量的选取可以看出4*4的还有一种简单的解法:把前三排全踩亮(灭),如果第四排同时全亮(灭)则已经解开;否则无解。
5*5 有解:2+3+4+6+8+10+11+12+14+15+16+18+20+22+23+24=0,1+3+5+6+8+10+16+18+20+21+23+25=0
有解时共有4解。在此情况下取24、25为自由变量(为简便起见均取为0)。得到一个解为:
1=2+3+4+8+10+14+15+20
2=1+2+4+5+7+13+14+15+19
3=1+3+4+5+6+8+9+13+14+16+17+18+19+20+22
4=1+2+3+7+17+21+22+23
5=2+3+5+6+11+13+15+18+20+21+22
6=3+5+7+8+10+13+19+20
7=2+4+6+7+9+10+14+16+17+18+22
8=1+3+6+8+9+15+16+18+20+21+23
9=3+7+8+9+11+14+15+16+19+22+23
10=1+6+7+11+13+15+17+18+20+23
11=5+9+10+13+15+16+17+18+19+22
12=17+21+22+23
13=2+3+5+6+10+11+13+14+18+21+22
14=1+2+3+7+9+13+14+15+19
15=1+2+5+8+9+10+11+14+15+16+17+19+21
16=3+7+8+9+11+15+16+18+20+21+23
17=3+4+7+10+11+12+15+17+18+19+23
18=3+5+7+8+10+11+13+16+17+19+20+21
19=2+3+6+9+11+14+15+17+18+19+23
20=1+3+5+6+8+10+16+18+20+21+23
21=4+5+8+12+13+15+16+18+20+21+22
22=3+4+5+7+9+11+12+13+21+22+23
23=4+8+9+10+12+16+17+19+20+22
24=0
25=0 亮1盏灯
00100
2
1235
0
1235
2
亮2盏灯
11000
23
14
145
2345
3
00011
3
2345
145
14
23
10010
25
12345
34
1345
13
01001
5
4
34
24
123
亮3盏灯
01110
235
1
135
35
12
10101
35
235
135
12
1
使用方法。
先把前4行20盏灯全部踩亮,一行行踩,站在下一行把上一行踩亮,移动配合回车,很简单的。
前面第一行数字表示最后一行灯的状态,灯亮为1,暗为0。
比如:00100表示前4行全亮,最后一行只有中间的灯亮。
接下来有5排数字,第1排表示第1列,第2排表示第2列,以此类推。
比如:00100
2
1235
0
1235
2
表示
先让第一列第2格(从上往下数)的灯及四周的灯发生变化(从当前位置不断移动到第一列第2格,移动一次按一次回车使灯的状态不发生变化,一直到移动到第一列第2格为止,到了第一列第2格就不用按回车了)
再让第二列1235格的灯及四周的灯依次发生变化
0表示第三列没有灯需要变化
依次类推。
这是我目前所有有解状态中前四行全亮的几种状态及其解决方案。
希望正是你所遇到的。
107层4x4按照上面的办法使前三行全亮,最后一行全亮则通过。否则无解。
106层3x3参照魔塔二106,107过关工具
http://www.51see.com/mota/pk2/light.asp