Rechercher : dans
Par :

Calcul de la distance de Hamming

Dernière réponse le 27 fév 2008 à 10:08:32 sebsauvage, le 21 déc 2006 à 15:13:33 
 Signaler ce message aux modérateurs

Hello !

Je cherche un algo pour calculer la distance de Hamming (distance entre 2 mots, pratique pour trouver les mots "proches".)


Il y a 4 cas:

manger
menger

1 lettre différente --> +1

manger
magner

2 lettre interverties ---> +1

manger
mnger

manque 1 lettre ----> +1

manger
maniger

1 lettre en plus ----> +1


Mon soucis, c'est que tous les algos de Hamming que j'ai trouvé ne gère que le premier cas.
Je cherche un algo qui gèrerait les 4 cas.

Est-ce que quelqu'un aurait une adresse ?


Merci. “Life is short - You need Python” -- Bruce Eckel, membre du comité ANSI C++

Configuration: Windows XP
Firefox 2.0.0.1

Meilleures réponses pour « Calcul de la distance de Hamming » dans :
Eteindre/Allumer un PC à distance (Shutdown / Wake On Lan) VoirShutdown / Wake On Lan Bonjour à tous ! Vous ne vous êtes jamais demandé si c'était possible d'éteindre ou d'allumer un ordinateur à distance ? Et bien oui, c'est possible ! Et en plus, c'est à porté de tous. Après quelques heures de...
Accéder à distance à sa machine (VNC+ssh) VoirL'astuce suivante vous permettra d'accéder à distance à votre machine de manière graphique. Nous allons utiliser le serveur VNC inclu dans Ubuntu (Vino) en le sécurisant par ssh. Vous pourrez alors accéder à distance à votre PC avec ssh et vnc...
[VNC] Se faire aider à distance VoirVNC Le logiciel VNC (Virtual Network Computing) vous permettra de vous faire aider à distance sur votre machine. Démarrez le serveur, convenez d'un mot de passe avec la personne qui a accepté de vous aider, et donnez-lui votre adresse IP. Elle...
Télécharger E-calcul VoirLes maths sont pour certains un jeux, alors que pour la majorité, c’est tout un parcours du combattant. Alors si vous devez utiliser des formules mathématiques sans trop vous cassez la tête, essayer ce programme. E-calcul est premièrement une...
Tableur - Les feuilles de calcul VoirLa notion de feuille de calcul Un tableur présente les données et les formules sous forme d'un tableau (lignes et colonnes) appelé feuille de calcul. Une feuille de calcul est constitué de lignes (numérotées à l'aide de chiffres) et de colonnes...
Opérations de calcul VoirOpérations calculatoires Les opérateurs de calcul ne sont pas des opérations dérivées dans la mesure où ils ne peuvent pas être exprimés à l'aide des opérateurs de base. Ils permettent néanmoins de faire des opérations très utiles (parfois...

1

Reivax962, le 21 déc 2006 à 15:42:45

Petite question : l'interversion ne doit-elle concerner que des lettres consécutives ?
Quelle serait la distance de Hamming de "manger" et "ganmer" ?
1 pour une inversion, 2 pour deux lettres changées ? Voire 3 pour une inversion à une distance de 3 ?

Je pense que si c'est "2 pour deux lettres changées", on peut inclure un test simple dans un algorithme linéaire, mais sinon, on risque de devoir exécuter plusieurs algorithmes, pour gérer chaque cas...

Par exemple :
1 - algo qui calcule le solde au sens 1
2 - algo qui recherche les interversions, et qui enlève 1 pour chacune (et non pas qui rajoute ! Car une interversion a déjà été comptée deux fois dans le premier algo)
3 - ça, sincèrement, ça me parait compliqué à mettre en place ! Il faudrait voir ce qui est utilisé dans les algorithmes de <ital>diff</i> qui sont notamment intégrés aux outils de travail collaboratif (subversion, cvs...) Dans tous les cas, c'est à intégrer au 1er algorithme, sinon la distance explosera et il sera compliqué de la corriger.
4 - idem

Répondre à Reivax962

2

sebsauvage, le 21 déc 2006 à 16:38:39

l'interversion ne doit-elle concerner que des lettres consécutives ?

En principe oui.

Mais on devrait pouvoir calculer plusiers interversion consécutives:

manger
mganer

le g est décalé 2 fois vers la gauche ---> +2


on risque de devoir exécuter plusieurs algorithmes, pour gérer chaque cas...

C'est un peu ça qui m'inquiète, avec l'explosion combinatoire.

“Life is short - You need Python” -- Bruce Eckel, membre du comité ANSI C++

Répondre à sebsauvage

3

Reivax962, le 21 déc 2006 à 16:46:56

Le problème, c'est qu'arrivé à un certain niveau, j'ai peur qu'on se retrouve avec plusieurs distances pour deux chaines de caractères, puisque une modification peut-être obtenue par diverses combinaisons des différents critères... J'imagine que dans ce cas, on prend le min des distances... J'espère que tu ne veux pas calculer la distance de Hamming de deux romans, parce que là, ce serait vraiment ingérable à moins d'avoir un Cray à ta disposition ^^'

Répondre à Reivax962

4

sebsauvage, le 21 déc 2006 à 16:53:30

J'espère que tu ne veux pas calculer la distance de Hamming de deux romans

:-)

Non, heureusement.
“Life is short - You need Python” -- Bruce Eckel, membre du comité ANSI C++

Répondre à sebsauvage

5

 helene, le 27 fév 2008 à 10:08:32

Peut etre tu peux esseyer utiliser l'algorithme Wagner et Fischer.

Répondre à helene