Comme le dit pierre, on peut très bien coder, décoder et corriger un mot de Hamming(7-4) à partir d’un jeu de données sans utiliser la notion de matrice. La notion de tableau est amplement suffisante. La seule contrainte pour nos élèves c’est la double boucle. On peut par exemple mettre les positions à contrôler dans une liste
bits_controle_parite = [[1, 3, 5, 7], [2, 3, 6, 7], [4, 5, 6, 7]]
1ere sous liste C0, deuxième sous liste C1 puis C2. Il n’y a plus qu’à calculer les valeurs des bits de parité avec un mot qui peut lui aussi etre stocké dans une liste
mot = [1, 0, 1, 0, 1, 0, 0] le mot avec les bits de parité à zéro et bit de poids faible à droite, on peut aussi le faire construire aux élèves assez facilement à partir des données sur 4 bits
pour calculer les valeurs des bits de parité dans le mot de hamming on pourrait écrire :
bits_controle_parite = [[1, 3, 5, 7],[2, 3, 6, 7], [4, 5, 6, 7]]
mot = [1, 0, 1, 0, 1, 0, 0]
for i in range(len(bits_controle_parite)):
somme = 0
for pos in bits_controle_parite[i]: #Pour les positions controlées par un bit de parité
somme += int(mot[-pos]) #On fait la somme des valeurs controlées
somme = somme % 2 #0 si la somme est pair et 1 sinon
mot[-bits_controle_parite[i][0]] = somme #On affecte le résultat au bit de parité concerné
print mot