6
votes

Distance de halogerie entre deux cordes binaires ne fonctionnant pas

J'ai trouvé un algorithme intéressant pour calculer la distance de Hamming sur Ce site :

'100010'
'101000'


2 commentaires

Quelle est la question? Y a-t-il une erreur?


bin (int ('100010', 2)) produit binaire.


4 Réponses :


27
votes

Mettez-le:

assert hamming2("1010", "1111") == 2
assert hamming2("1111", "0000") == 4
assert hamming2("1111", "1111") == 0


0 commentaires

5
votes

Si nous voulons coller avec l'algorithme d'origine, nous devons convertir les chaînes en entiers pour pouvoir utiliser les opérateurs bitwises. xxx pré>

puis nous pouvons l'appeler comme suit:

print(hamming2('100010', '101000'))


0 commentaires

0
votes

Je pense que cela explique bien la distance de Hamming entre deux chaînes xxx


0 commentaires

5
votes

C'est ce que j'utilise pour calculer la distance de Hamming.
Il compte le nombre de différences entre les chaînes de longueur égale.

def hamdist(str1, str2):
    diffs = 0
    for ch1, ch2 in zip(str1, str2):
        if ch1 != ch2:
            diffs += 1
    return diffs


0 commentaires