58 lines
1.2 KiB
OCaml
58 lines
1.2 KiB
OCaml
#cd "/home/mysaa/Documents/Arbeiten/TIPE2021";;
|
|
#use "Codes.ml";;
|
|
|
|
(* Test du produit de matrice *)
|
|
let matest = [0b01110; 0b00101; 0b10111];;
|
|
print_matrice 5 matest;;
|
|
produit matest 0b110;; (* -> 0b10010 = 8*)
|
|
|
|
(* Test des fonctions de base *)
|
|
deux_puissance 11;;
|
|
identite 3;;
|
|
changer_bit 2 6;;
|
|
respecter 7 [3];;
|
|
|
|
|
|
(* Test des Codes *)
|
|
(* Un classique : code de Hamming (4, 7)
|
|
1 0 0 0
|
|
0 1 0 0
|
|
0 0 1 0
|
|
0 0 0 1
|
|
1 1 1 0 1 0 0
|
|
1 1 0 1 0 1 0
|
|
1 0 1 1 0 0 1
|
|
-> les 4 premières colonnes : G
|
|
-> les 3 dernières lignes : H
|
|
*)
|
|
let code_hamming =
|
|
construire_code_lineaire_systematique 4 7 [7; 3; 5; 6]
|
|
;;
|
|
|
|
distance_minimale code_paparfait;;
|
|
|
|
exception GTROUVE of matrice;;
|
|
|
|
for i=0 to 200000
|
|
do
|
|
Random.self_init ();
|
|
let matPapa = matriceAuPif 9 12 in
|
|
let code_paparfait = construire_code_lineaire_systematique 12 21 matPapa in
|
|
let dst = distance_minimale code_paparfait in
|
|
if dst>1
|
|
then raise (GTROUVE matPapa)
|
|
done;;
|
|
|
|
print_vecteur 21 (encoder code_paparfait 0b011011011001);;
|
|
|
|
|
|
print_matrice 3 (suivants 3 (suivants 3 (suivants 3 (suivants 3 [0b000]))));;
|
|
|
|
|
|
|
|
print_vecteur 7 (encoder code_hamming 0b0100);;
|
|
decoder code_hamming 0b1010100;;
|
|
decoder code_hamming 0b0010100;;
|
|
decoder code_hamming 0b1110000;;
|
|
print_vecteur 7 21;;
|