0

我正在尝试比较 python 中汉明码的三种不同解码器:蛮力、本地搜索和综合症。我的蛮力实施有问题:

def bruteForce(v):
    n = len(v)
    r = int(math.log(n+1,2))
    k = n-r
    m = []
    d = []
    c = []
    for i in range(2**k):
        m.append(decimalToVector(i,k))
    for j in range(2**k):
        d.append(hammingDistance(matrixMult(m[j], HammingG(r)),v))
    for l in range(2**k):
        if d[l] <= 1:
             c = matrixMult(m[l], HammingG(r))
    return c

这运行没有错误,但是当输入是向量时,输出只是[],而不是任何二进制数序列bruteForce([1,0,0,0,0,0,1])

4

1 回答 1

0

这只是猜测,但您不妨检查一下是否d[l] <= 1真的正确。汉明码的标志之一是纠错,这是可能的,因为最小距离为 3。您的代码看起来好像您仅实现了奇偶校验码(最小距离 == 1。)

于 2014-02-14T12:44:18.917 回答