在行列可自由变换的平面上有两个结构
1 | 1 | 1 | 0 | 0 | 0 |
1 | 0 | 0 | 1 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 0 | 0 | 1 |
0 | 0 | 0 | 1 | 1 | 1 |
0 | 0 | 0 | 0 | 1 | 0 |
** | |||||
1 | 1 | 1 | 0 | 0 | 0 |
1 | 1 | 0 | 0 | 0 | 0 |
1 | 0 | 0 | 0 | 0 | 0 |
0 | 0 | 0 | 1 | 1 | 1 |
0 | 0 | 0 | 1 | 1 | 0 |
0 | 0 | 0 | 0 | 0 | 1 |
如何快速的判断他们是不是相同的,
2 | 3 | 1 | 2 | 2 | 2 | ||
1 | 1 | 1 | 0 | 0 | 0 | 3 | |
1 | 0 | 0 | 1 | 0 | 0 | 2 | |
0 | 1 | 0 | 0 | 0 | 0 | 1 | |
0 | 1 | 0 | 0 | 0 | 1 | 2 | |
0 | 0 | 0 | 1 | 1 | 1 | 3 | |
0 | 0 | 0 | 0 | 1 | 0 | 1 | |
** | |||||||
1 | 1 | 1 | 0 | 0 | 0 | 3 | |
1 | 1 | 0 | 0 | 0 | 0 | 2 | |
1 | 0 | 0 | 0 | 0 | 0 | 1 | |
0 | 0 | 0 | 1 | 1 | 1 | 3 | |
0 | 0 | 0 | 1 | 1 | 0 | 2 | |
0 | 0 | 0 | 0 | 0 | 1 | 1 | |
3 | 2 | 1 | 2 | 2 | 2 |
一种可能的办法是统计每行每列中点的数量
1 | 1 | 2 | 2 | 3 | 3 |
1 | 2 | 2 | 2 | 2 | 3 |
但这两个结构每行点的数量都是1,1,2,2,3,3.每列点的数量都是1,2,2,2,2,3区分不出来。
7 | 12 | 3 | 7 | 6 | 7 | ||
4 | 5 | 3 | 12 | ||||
3 | 3 | 6 | |||||
3 | 3 | ||||||
4 | 3 | 7 | |||||
4 | 4 | 4 | 12 | ||||
2 | 2 | ||||||
5 | 4 | 3 | 12 | ||||
4 | 3 | 7 | |||||
3 | 3 | ||||||
4 | 4 | 4 | 12 | ||||
3 | 3 | 6 | |||||
2 | 2 | ||||||
12 | 7 | 3 | 7 | 7 | 6 |
这种情况下可以统计每个点所在行列点的总数,可以得到两个数组
2 | 3 | 6 | 7 | 12 | 12 |
3 | 6 | 7 | 7 | 7 | 12 |
但两个数组是相同的。
25 | 46 | 12 | 25 | 20 | 26 | 91 | 176 | 46 | 89 | 70 | 96 | |||||
15 | 19 | 12 | 46 | 56 | 73 | 46 | 175 | |||||||||
10 | 10 | 20 | 35 | 35 | 70 | |||||||||||
12 | 12 | 46 | 46 | |||||||||||||
15 | 11 | 26 | 57 | 41 | 98 | |||||||||||
15 | 14 | 15 | 44 | 54 | 50 | 55 | 159 | |||||||||
6 | 6 | 20 | 20 | |||||||||||||
19 | 15 | 12 | 46 | 73 | 57 | 46 | 176 | |||||||||
15 | 11 | 26 | 57 | 41 | 98 | |||||||||||
12 | 12 | 46 | 46 | |||||||||||||
15 | 15 | 14 | 44 | 54 | 54 | 50 | 158 | |||||||||
10 | 10 | 20 | 35 | 35 | 70 | |||||||||||
6 | 6 | 20 | 20 | |||||||||||||
46 | 26 | 12 | 25 | 25 | 20 | 176 | 98 | 46 | 89 | 89 | 70 |
用同样的办法计算第二次得到
6 | 12 | 20 | 26 | 44 | 46 |
12 | 20 | 25 | 25 | 26 | 46 |
还是无法区分,
但计算到第3次,得到
上面的结构为
20 | 46 | 70 | 98 | 159 | 175 |
46 | 70 | 89 | 91 | 96 | 176 |
下面的结构为
20 | 46 | 70 | 98 | 158 | 176 |
46 | 70 | 89 | 89 | 98 | 176 |
两个结构得以区分。
但并不是所有的结构都可以这么区分
1 | 1 | 0 | 0 |
1 | 0 | 1 | 0 |
0 | 1 | 0 | 1 |
0 | 0 | 1 | 1 |
1 | 1 | 0 | 0 |
1 | 1 | 0 | 0 |
0 | 0 | 1 | 1 |
0 | 0 | 1 | 1 |
统计行列点的数量和
2 | 2 | 2 | 2 | ||
1 | 1 | 0 | 0 | 2 | |
1 | 0 | 1 | 0 | 2 | |
0 | 1 | 0 | 1 | 2 | |
0 | 0 | 1 | 1 | 2 | |
1 | 1 | 0 | 0 | 2 | |
1 | 1 | 0 | 0 | 2 | |
0 | 0 | 1 | 1 | 2 | |
0 | 0 | 1 | 1 | 2 | |
2 | 2 | 2 | 2 |
他们是相同的,
6 | 6 | 6 | 6 | 18 | 18 | 18 | 18 | |||||
3 | 3 | 6 | 9 | 9 | 0 | 0 | 18 | |||||
3 | 3 | 6 | 9 | 0 | 9 | 0 | 18 | |||||
3 | 3 | 6 | 0 | 9 | 0 | 9 | 18 | |||||
3 | 3 | 6 | 0 | 0 | 9 | 9 | 18 | |||||
3 | 3 | 6 | 9 | 9 | 18 | |||||||
3 | 3 | 6 | 9 | 9 | 18 | |||||||
3 | 3 | 6 | 9 | 9 | 18 | |||||||
3 | 3 | 6 | 9 | 9 | 18 | |||||||
6 | 6 | 6 | 6 | 18 | 18 | 18 | 18 |
统计每个点所在行列的点的数量和,他们也是相同的,
54 | 54 | 54 | 54 | 162 | 162 | 162 | 162 | |||||
27 | 27 | 54 | 81 | 81 | 162 | |||||||
27 | 27 | 54 | 81 | 81 | 162 | |||||||
27 | 27 | 54 | 81 | 81 | 162 | |||||||
27 | 27 | 54 | 81 | 81 | 162 | |||||||
27 | 27 | 54 | 81 | 81 | 162 | |||||||
27 | 27 | 54 | 81 | 81 | 162 | |||||||
27 | 27 | 54 | 81 | 81 | 162 | |||||||
27 | 27 | 54 | 81 | 81 | 162 | |||||||
54 | 54 | 54 | 54 | 162 | 162 | 162 | 162 |
计算到无限次都相同,用这种办法不足以区分这两个结构。
所以用点所在行列点的数量和的办法区分,如果得到的数组是不同的,则这两个结构一定是不同的,但如果是相同的还需要进一步区分。