|
看看能不能搞定高维的情况
记 K = 字符串长度, M = 字母个数(A, B, C, ...,我们实际记为 A[1], A[2], ... A[M])
先提出一个猜想:
所有 K = 2 长度 M 个字母组成的字符串可以被分成 M 组,其中每组的编码都不相似(至少差两位)
比方 对于2个字母 (AA, BB) 是一组,(AB, BA) 是一组
对于3个字母 (AA, BB, CC) 是一组,(AB, BC, CA)是一组, (BA, CB, AC)是一组
在这个基础上可以证明,K 为任意数时,所有编码可以被分成 M 组(G[1], G[2], ... G[M]),每组的编码都不相似
每组中的编码个数是 M^(K-1)
这步证明很容易,只需要构造M组序列
(A[1], A[2], A[3], ... A[M])
(A[2], A[3], ... A[M], A[1])
(A[3], ... A[M], A[1], A[2])
...
(A[M], A[1], A[2], ... A[M-1])
使用其中任意一组序列,比方 (A[1], A[2], A[3], ... A[M])
依次取出每个字母连接到 G[1], G[2], ... G[M] 后面
可以证明这些长度为 K + 1 的字符串不相似(共 M^(K-1) * M 个)
组内元素本来就不相似
组与组之间元素本来至少一位不同,加上后面一位不同,所以也不相似
同时我们有M组序列,也就是同时构造出了M组,每组编码不相似
于是可以用归纳法证明K为任意数时成立
现在问题就化简为证明这个猜想了,我想应当不是很困难吧,也许只需要按我们上面构造的序列那样
1, 2, 3 ... M (第一排取第一个,第二排取第二个...)
2, 3, ... M, 1
3, ... M, 1, 2
M, 1, 2, ...M-1
取平面格点中的每个元素就可以了(参考平面的情况)
看看有没有漏洞 |
|