質問があります: 次のコードのハミング距離を見つけてください:
11111
10101
01010
11100
00011
11001
答えは 2 です。これはどのように機能しますか? ハミング距離は2本の弦の間だけだと思っていましたか?
質問があります: 次のコードのハミング距離を見つけてください:
11111
10101
01010
11100
00011
11001
答えは 2 です。これはどのように機能しますか? ハミング距離は2本の弦の間だけだと思っていましたか?
コードのハミング距離は、任意の 2 つのコードワード間の最小距離として定義されます。したがって、あなたの場合、リストされたコードワードの任意の 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 hammingDistance(a, b):
distance = 0
for i in xrange(len(a)):
distance += a[i]^b[i]
return distance
def minHammingDistance(code):
minHammingDistance = len(code[0])
for a in code:
for b in code:
if a != b:
tmp = hammingDistance(a, b)
if tmp < minHammingDistance:
minHammingDistance = tmp
return minHammingDistance
print("min Hamming distance: %i" % minHammingDistance(code))