Math 求码的汉明距离

Math 求码的汉明距离,math,error-detection,hamming-distance,Math,Error Detection,Hamming Distance,一个问题问:找到以下代码的汉明距离: 11111 10101 01010 11100 00011 11001 答案是2。这是怎么回事?我认为汉明距离仅在两个字符串之间?一个代码的汉明距离定义为任意两个码字之间的最小距离。因此,在您的例子中,查找列出的任意两个码字之间的汉明距离,没有一个小于2。下面是一些自动查找它的Python代码: code=[ (0,0,0,0,0,0), (0,0,1,0,0,1), (0,1,0,0,1,0), (0,1,1,0,1,1), (1,0

一个问题问:找到以下代码的汉明距离:

11111  
10101  
01010  
11100  
00011  
11001

答案是2。这是怎么回事?我认为汉明距离仅在两个字符串之间?

一个代码的汉明距离定义为任意两个码字之间的最小距离。因此,在您的例子中,查找列出的任意两个码字之间的汉明距离,没有一个小于2。

下面是一些自动查找它的Python代码:

code=[
(0,0,0,0,0,0),
(0,0,1,0,0,1),
(0,1,0,0,1,0),
(0,1,1,0,1,1),
(1,0,0,1,0,0),
(1,0,1,1,0,1),
(1,1,0,1,1,0),
(1,1,1,1,1,1)]
def汉明距离(a、b):
距离=0
对于x范围内的i(len(a)):
距离+=a[i]^b[i]
返回距离
def Minhamming距离(代码):
minHammingDistance=len(代码[0])
对于输入代码:
对于代码中的b:
如果是b:
tmp=汉明距离(a,b)
如果tmp
我们有一个定理,d_min=weight(和(所有代码)); 权重是结果字符串中非零的数目。在您的示例中,按模添加所有字符串代码
就像第一列和第二列一样。。。。。。。然后我们得到的代码是[0 0 1 1 0],它的权重是2(非零的数量),即汉明码的最小距离你确定它不是要求最小距离吗?你有这个定理的来源吗?如果您有字符串
0000
1000
1110
,最小汉明距离显然是
1
,但您的计算将返回
2
(异或和为
0110