太极迷阵的一种通解

2019/01/042749 浏览综合
在这里给出n个点,m条线,任意线条件约束(例如线连的点必须连续),任意初始点a,任意终止点b的通解思路。
黑白二色对应二进制0和1,则n个点对应于二进制向量,线约束对应于n*n的二进制矩阵A,则本问题转化为解二进制线性方程组A*x=a+b。
从而有,有解的充要条件是r(A)=r([A a+b]),这里的秩是指字母矩阵(λ-矩阵)的秩,不是数字矩阵的秩。
因此,我们只需要1次秩的判断就可以解出该问题。
该解法总计算量约为(m-1)(n-1)/2,实际计算更简单,因为只涉及到0和1的二进制加减。
若用计算机判断秩,我们可以选用n-1次秩的判断代替手工计算,虽然计算量增大,但总计算量不过是大约为m*O(n²),甚至更少。
实际上,只需要一次对角化,就可得出结果,因为只涉及到二进制加减,总计算过程运算量极小。
给出例子:以第五关为例(高阶类似)
TapTap
共6个点,4条相连的线,初始点a=(1,0,0,0,1,0),终止点b1=0或b2=(1,1,1,1,1,1)
矩阵A如下图(左边灰色是行标):
TapTap
得出结果:
若取b=b1,有x=(1,1,1,0,0,1),(选取初始列不同,得到结果不同,但本解是包含所选列的极小解)
若取b=b2,则无解
由于时间太晚,明天我会把第99关解答贴出。
若需要详细过程证明,我会详细贴出。真正计算很简单。
53
38
20