【问题标题】:Hamming code decoders in python?python中的汉明码解码器?
【发布时间】:2014-02-14 11:14:49
【问题描述】:

我正在尝试比较 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]) 之类的向量时,输出只是[],而不是任何二进制数序列。

【问题讨论】:

  • 您的问题到底是什么?错误(提供追溯)?意外输出(提供输入、预期输出、实际输出)?
  • 蛮力编译很好,但是当输入是一个向量比如bruteForce([1,0,0,0,0 ,0,1])
  • [] 是否意外输出?如果是这样,为什么将 c 初始化为[]?在您的代码中,返回的值要么是这个空列表(如果 d[l] &gt; 1 代表所有 l),要么是最后一个循环中最后一个计算的结果。

标签: python brute-force error-correction hamming-code


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 2014-09-23
    • 1970-01-01
    • 2017-02-08
    • 2012-10-23
    • 2012-05-29
    相关资源
    最近更新 更多