0
나는 파이썬에서 해밍 코드에 대한 세 가지 디코더, 즉 무차별 대항력, 로컬 검색 및 신드롬을 비교하려고합니다. 나는 나의 무력 구현에 문제가 있어요 :이 오류없이 실행되지만 입력이 bruteForce([1,0,0,0,0,0,1])
와 같은 벡터 일 때 출력이 대신 이진 숫자의 순서로, 단순히 []
입니다파이썬에서 해밍 코드 디코더?
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
.
정확히 무엇이 문제입니까? 오류 (추적을 제공)? 예기치 않은 결과 (입력, 예상 출력, 실제 출력 제공)? – jonrsharpe
짐승 같은 힘이 잘 컴파일되지만, 입력이 bruteForce ([1,0,0,0,0,0,1]) – user3236854
과 같은 벡터 인 경우 이진 숫자 시퀀스가 아닌 단순히 [[] "출력이됩니다. '[]'는 예상치 못한 결과를 출력합니까? 그렇다면 왜 c를'[]'로 초기화합니까? 코드에서 반환되는 값은이 빈 목록 (모든'l '에 대해'd [l]> 1이면)이거나 마지막 루프의 마지막 계산 결과입니다. –