Python 2014-15
In [15]: print("message décodé", decode_hamming([1,0,1,0,0,1,1]))
Attention il y a une erreur dans le message transmis
Je corrige le bit n° 3
message décodé [0, 0, 1, 1]
Effet mauvais ? Que répondre ?
Q15
On demande de repérer une double erreur. Cette question me semble trop difficile si on ne connait pas déjà la
réponse…
On rajoute un huitième bit de parité sur l’ensemble des 7 bits.
On suppose qu’il n’y a jamais plus de deux erreurs.
Si c1, c2, c3 = 0, 0, 0 alors OK, on peut décoder, sinon :
• s’il y a une seule erreur sur les sept premiers bits, on la corrige, le 8e bit de parité est mauvais.
• s’il y a une erreur sur les sept premiers bits et un erreur sur le bit de parité rajouté, on sait qu’il y a une
seule erreur sur les sept premiers bits et on corrige tranquillement.
• s’il y a deux erreurs dans les sept premiers bits, elle est détectée par c1, c2, c3 (information à connaître
donc question trop difficile) mais que partiellement corrigée, en revanche le 8e bit de parité est “bon”, ce
qui permet de détecté cette double erreur. On retransmet alors l’octet (on ne peut pas corriger la double
erreur)
En résumé,
si c1, c2, c3 = 0, 0, 0, ok, on décode. Sinon - si le 8e bit est mauvais, on n’a qu’une erreur sur les sept premiers
bits. On sait corriger. - si le 8e bit est bon, c’est qu’on a une double erreur. On ne pas peut pas corriger. Il faut
retransmettre l’information.
Q16
id_titre est du type int
zones est une liste de deux entiers donc est de type list
date_fin est une liste de trois entiers donc de type list
Q17
In [16]: ### pour le test
lignes ='''\
49987654
1, 3, 2015-08-31
2014-10-29, 08:34:15, 4568
2014-10-28, 20:21:48, 365
2014-10-28, 18:47:54, 987
'''
lignes =lignes.split('\n')
In [17]: passages =[]
for iin range(2,5):
passage =lignes[i].rstrip('\n').split(',')
date =passage[0].split('-')
heure =passage[1].split(':')
ident =passage[2]
lignepass =[int(date[0]), int(date[1]), int(date[2]),
int(heure[0]), int(heure[1]), int(heure[2]), int(ident)]
passages.append(lignepass)
In [18]: passages
Out[18]: [[2014, 10, 29, 8, 34, 15, 4568],
[2014, 10, 28, 20, 21, 48, 365],
[2014, 10, 28, 18, 47, 54, 987]]
Q18
5/6