您的位置  文化生活  教育

用简单的线性代数求解正方形雷元素方块谜题

  • 来源:互联网
  • |
  • 2021-07-24
  • |
  • 0 条评论
  • |
  • |
  • T小字 T大字

用简单的线性代数求解正方形雷元素方块谜题

OriBeta

编辑一下:

1.为什么要写这么复杂?因为楼主比较菜,尤其是一开始乱激活几次之后发现实在没法一眼看出解来,想整理一下思路觉得用线性方程组来解顺手就这么做了。

2.其他的情况的雷方块阵列其实也可以用类似的思路做(如果也是楼主一样菜得一眼看不出来的话),楼主懒得写了~

3.就像回复说得那样,楼主也觉得群论的观点可能会更高一点(就像魔方群那样?),但是楼主没学过,坐等楼里那位大佬来水一贴。

首先给方块编号,任选一方块为1号位,然后约定以逆时针方向依次编为2、3、4号位.

方块的转动可以用虚数描述,将目标方向的状态记为1,则相对目标方向顺时针转动90度、180度、270度的状态可记为i,-1,-i,每转动一次方块相当于给方块的状态乘i.

整个元素方块阵的状态可以用一个列向量来描述,而射击某个方块的操作对应于一个对角矩阵,如射击方块1对应于对角阵diag{i,i,1,i},将此矩阵记为R1,同理可定义R2、R3、R4.

设四个方块的初始状态分别为a1、a2、a3、a4,注意到对角阵的乘积是满足交换律和结合律的,则谜题转化为求解:

把左边这四个矩阵幂的乘积记为R,则R的具体数值是容易看出来的,事实上有R=diag{1/a1,1/a2,1/a3,1/a4},那么接下来就是求解四个幂了,也就是每个方块要被激活的次数,利用i幂次的性质,容易列出方程:

x4+x1+x2=n1 mod 4

x1+x2+x3=n2 mod 4

x2+x3+x4=n3 mod 4

x3+x4+x1=n4 mod 4

其中n为1/a对应的i的幂次,即1/a为1、i、-1、-1时,n分别为0、1、2、3,可以得到这个方程的解:

至此求解完毕.

例:要将这四个方块全部转到面向墙壁,应该如何操作?

解:取图中右下角的方块为1号,则初始状态为a1=a3=a4=-1,a2=i,取倒数后为(-1,-i,-1,-1),对应的n为(2,3,2,2),带入公式求解得到x=(1,1,1,0).

即除了四号方块外,其余方块各激活一次。

「链接」

血狐杀戮 http://www.cityruyi.com/lm-4/lm-2/8835.html
免责声明:本站所有信息均搜集自互联网,并不代表本站观点,本站不对其真实合法性负责。如有信息侵犯了您的权益,请告知,本站将立刻处理。联系QQ:1640731186
  • 标签:SQL Error: select * from ck.***_ecms_news where classid=14 order by rand() desc limit 1
  • 编辑:马拉文
  • 相关文章
TAGS标签更多>>
SQL Error: select * from ck.***_ecms_news where classid=14 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=14 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=16 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=16 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=14 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=14 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=13 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=13 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=16 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=16 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=15 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=14 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=14 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=13 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=13 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=16 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=16 order by rand() desc limit 1 SQL Error: select * from ck.***_ecms_news where classid=15 order by rand() desc limit 1