6

質問があります: 次のコードのハミング距離を見つけてください:

11111  
10101  
01010  
11100  
00011  
11001

答えは 2 です。これはどのように機能しますか? ハミング距離は2本の弦の間だけだと思っていましたか?

4

3 に答える 3

11

コードのハミング距離は、任意の 2 つのコードワード間の最小距離として定義されます。したがって、あなたの場合、リストされたコードワードの任意の 2 つの間のハミング距離を見つけると、2 未満になる人はいません。

于 2012-10-05T12:10:54.123 に答える
5

これを自動的に見つけるための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))
于 2012-10-26T19:52:33.600 に答える