Inscription / Connexion Nouveau Sujet
Niveau exercices
Partager :

détecter des erreurs sur un mot de deux lettres

Posté par
tringlarido
26-10-08 à 16:06

Bonjour à tous,

Supposons que nous communiquons par mots de deux lettres et que nos canaux de transmissions ne soient pas fiables. Pour palier ce problème nous décidons de transmettre des mots de trois lettres dont le dernier caractère constitue une clé détectrice d'erreurs : (mot transmis) = (mot de 2 lettres)(clé).

Prenons pour alphabet  A = {0,...,n}. Se donner une clé pour chaque mot revient à se donner une fonction f : A \times A \rightarrow A . Si notre mot mot de deux lettres est m nous transmettrons le mot de trois lettres m f(m).

Pour détecter une erreur de transmission :
1) sur la première lettre il faut et il suffit que notre fonction vérifie f(.,x) soit injective
2) sur la seconde lettre, que f(x,.) soit injectives.
3) de transposition, que f(x,y) \not= f(y,x) dès que x\not=y.

Peut-on construire de telles fonctions afin d'assurer une sécurisation de nos transmissions ?

Posté par
Camélia Correcteur
re : détecter des erreurs sur un mot de deux lettres 26-10-08 à 16:16

Bonjour et sois le bienvenu sur l'

 Cliquez pour afficher

Posté par
tringlarido
Salut Camélia, 26-10-08 à 16:28

En effet ça coince pour n=2. Mais pour 3 c'est OK :

***********
  * 1 2 3 *
***********
1 * 1 2 3 *
2 * 3 1 2 *
2 * 2 3 1 *
***********

On ne peut pas construire f par récurrence ! Tout le problème est là. Le but est de trouver des n pour lesquels ça marche et pour lesquels ça ne marche pas.

Jusqu'ici :
"ça marche" contient {1,3}
"ça marche pas" contient {2}

Posté par
tringlarido
re : détecter des erreurs sur un mot de deux lettres 26-10-08 à 16:28

(une petite erreur dans le tableau, le dernier 2 est un trois dans la première colone)

Posté par
tringlarido
re : détecter des erreurs sur un mot de deux lettres 27-10-08 à 20:39

question : peut-on le faire avec un alphabet de 4 lettres ?

Posté par
plumemeteore
re : détecter des erreurs sur un mot de deux lettres 28-10-08 à 10:46

bonjour Tringlarido

 Cliquez pour afficher

Posté par
plumemeteore
re : détecter des erreurs sur un mot de deux lettres 28-10-08 à 10:57

 Cliquez pour afficher

Posté par
tringlarido
re : détecter des erreurs sur un mot de deux lettres 28-10-08 à 17:19

Salut,

réponse pour les alphabets impairs (bien joué plumeteore) :

 Cliquez pour afficher



la réponse donnée pour n=4 n'est pas bonne :
 Cliquez pour afficher


En résumé, le cas difficile est le cas de n pair.

Posté par
plumemeteore
re : détecter des erreurs sur un mot de deux lettres 28-10-08 à 22:55

bonjour Tringlarido
quand le nombre de lettres est pair, on peut ajouter à la fin de l'alphabet une lettre vide, qui ne fera jamais partie d'un mot
puis calculer la clef de n'importe quel mot de deux lettres en tenant compte de cette lettre vide, donc dans le cadre d'un nombre de lettres impair
par exemple abcd -> abcd?
abcd?abcd
bd : distance de 2; la clef est la deuxième lettre de l'alphabet : b
db : distance de 3, comprenant le ?; la clef est la troisième lettre : c
la somme des ordres des clefs d'une paire de permutations est le nombre de lettres plus un; comme cette somme est impair, les ordres de ces clefs sont toujours différents

Posté par
tringlarido
re : détecter des erreurs sur un mot de deux lettres 29-10-08 à 09:23

Certes c'est une solution de clé. Elle consiste à ajouter une lettre dans l'alphabet (ce qui est le principe pour le code ISBN des livres qui prennent en compte le caractère X pour la clé (X signifie 10)). Elle présente justement l'inconvénient d'ajouter un caractère supplémentaire.

L'exercice ne consiste pas à contourner le problème pour trouver une clé qui marche, mais à savoir si une telle clé existe en restant dans le cadre d'un alphabet fixé ! Cependant, c'est peut-être une bonne méthode de commencer à ajouter une lettre et voir si on peut la supprimer après coup.

Posté par
plumemeteore
re : détecter des erreurs sur un mot de deux lettres 29-10-08 à 09:45

bonjour Tringlarido
on peut avoir le même effet sans rajouter une lettre
soient n le nombre de lettres, i(1) l'indice de la première lettre du mot et i(2) l'indice de la deuxième lettre
si i(1) < i(2), la clef a comme indice i(2)-i(1)
si i(1) > i(2), la clef a comme indice i(2)-i(1)+n ou i(2)-i(1)+1 selon que n est impair ou pair
si i(1) = i(2), la clef a comme indice i(1) et i(2)

Posté par
plumemeteore
re : détecter des erreurs sur un mot de deux lettres 29-10-08 à 09:47

correction de la ligne : si i(1) > i(2), la clef a comme indice i(2)-i(1)+n ou i(2)-i(1)+1 selon que n est impair ou pair
devient :
si i(1) > i(2), la clef a comme indice i(2)-i(1)+n ou i(2)-i(1)+n+1 selon que n est impair ou pair

Posté par
tringlarido
re : détecter des erreurs sur un mot de deux lettres 29-10-08 à 10:10

Rq : on ne peut pas le faire pour n=2. Donc une approche par une méthode générale est risquée.

Plumeteore : ça ne marche pas :

 Cliquez pour afficher

Posté par
carpediem
détecter des erreurs sur un mot de deux lettres 30-10-08 à 14:13

salut

si f est injective par rapport à chacune des variables alors f est surjective par rapport à chacune des deux variables donc f est surjective
mais f peut-elle être injective ? (pb de cardinal, non ?)
donc peut-on distinguer et les erreurs sur une lettre et les permutations
comment peut-on distinguer qu'on a fait une erreur sur une lettre et pas sur les deux lettres?....

Posté par
tringlarido
re : détecter des erreurs sur un mot de deux lettres 30-10-08 à 15:39

Non, f ne peut pas être injective évidemment, elle envoit n points (le cardinal de l'alphabet) sur le même point...

Oui, on peut distinguer et les erreurs sur une lettre  et les permutations, comme le montre l'exemple que j'ai donné sur 3 lettres et la généralisation proposé dans le cas impair par plumeteore.
Ceci est du au fait qu'une permutation est une erreur sur deux lettres très particulière.

Par contre il y a des problèmes combinatoires dans le cas où n est pair. La preuve en est qu'il est impossible de le faire pour n=2 !

Posté par
tringlarido
re : détecter des erreurs sur un mot de deux lettres 30-10-08 à 19:30

Ce n'est pas parce que c'est moi qui ai posé le problème que je n'ai pas le droit d'y participer...

mini-théorème : On ne peut le faire avec 4 lettres

 Cliquez pour afficher

Posté par
tringlarido
re : détecter des erreurs sur un mot de deux lettres 30-10-08 à 19:33

On peut aussi le réecrire :

 Cliquez pour afficher

qui met en évidence la symétrie de cette solution.



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !