【发布时间】: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] > 1代表所有l),要么是最后一个循环中最后一个计算的结果。
标签: python brute-force error-correction hamming-code