Gamme TI-82


Poster un nouveau sujet Poster une réponse
Code Reed-Solomon.
Auteur Message
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Mar 16 Déc 2014, 14:11   Citer 

Tout est expliqué à cette adresse :
https://fr.wikipedia.org/wiki/Code_de_Reed-Solomon

En gros, avec ce prgm, si je vous donne une liste de nombres aussi longue soit elle, du genre :
[89 56 84 743 645 46 74 85 4 56 71 509 58 674 45 12 94 98 46 3 234]
ou encore :
[01010101100011000110010101010110101010101010]

Avec la clef de vérification que je vous donne, le prgm pourra corriger pour vous une erreur de recopiage.

On peut aussi adapter le prgm pour qu'il fonctionne avec des chaînes...

Entrez dans L1 la liste que vous voulez vérifier ou don vous voulez avoir la clef (composée de deux nombres).
Si il y a une erreur elle sera corrigée toute seule et la nouvelle valeur affichée.

EDIT prgm RSOLOMON V2 152 octets.

Code
:0->R

:For(N,1,dim(L1
:R+NL1(N->R
:End

:somme(L1->S
:Input "1/CLEF 2/VERIF ",M

:If M=1:Then:Disp S,R:Stop:End

:Prompt A,B
:If S=A et B=R:Stop
:S-A->S
:(R-B)/S->M
:Disp "ERR LIGNE",M,"VALEUR"
:L1(M)-S->L1(M



----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3772
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mar 16 Déc 2014, 22:58   Citer 

Intéressant.

(Comment gérer une erreur dans le code de correction ? Le code lui même est transmis avec le message dans les applications de communication.)

Suggestions d'optimisation et autre.
Je veux calculer la somme pondérée sans boucle.
Je préfère les menus aux invités bien que toi tu en mettes partout depuis toujours.
Je préfère quelques alternatives plutôt que des Stop. Return plutôt que Stop permet de revenir à un programme parent s'il y en a un.
tu utilises ces stop mais cela ne te permet pas spécialement de placer quelque chose stratégiquement sur la dernière ligne pour affichage, or je ne vois pas d'autre intérêt.
Je pense utile d'afficher la position de l'erreur. Afficher la liste est faisable aussi.
Code
somme(L1suite(N,N,1,dim(L1->R // simple suggestion facultative
 // ou pour Mathprint : Sigma(NL1(N),N,1,dim(L1->R
:somme(L1->S
:Menu("","CLE",1,"VERIF",2 // simplement ma préférence
:Lbl 1
:Disp S,R
:Return
:Lbl 2
:Prompt A,B
:If S-A ou B-R
:Then
:Disp "ERREUR"
:S-A->S
:R-B->R
:L1(R/S)-S->L1(R/S)
:Disp R/S
:L1(R/S  // j'omets le End pour profiter de la dernière ligne



----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
ld
Avatar

Autorisation : Membre
Nb de messages : 373
Inscrit le : Jeu 23 Sep 2010, 16:05
Posté le : Mar 16 Déc 2014, 23:05   Citer 

"une erreur dans le code de correction"
C'était la question existentielle de trop. Le temps va s'arrêter et l'univers va s’effondrer sur lui même. C'EST LA FIN LES MECS ! ONT VA TOUS MOURIR !! laugh.gif laugh.gif
Oui bah là il faut demander aux mathématiciens qui ont inventer çà !
Mais apparemment ont s'en sert pour pas mal de choses: téléphonie, Adsl, fichier image, QR code, CD, DVD (même codé 2 fois d'affilé paraît'il !)

La réponse est sur Wiki:
"Si plus de 8 octets sont détectés comme erronés, le bloc de données utiles est marqué comme défectueux. Aucune erreur n'est alors corrigée"
Et c'est forcément se qui se produit si la clef est fausse.

----------------------
Note Éphéméride Chrono Bombrman BlueFishEncryptor Labygénérateur Nord BandeauDeTexte LunarPhase Syracuse Papy-Jump Convertisseur ! SolveurDeSudoku VérificateurDeCodesBanquaire PrgmADiviser CryptageDeVigenere MiniSolv Reed-Solomon Code128Géodésie
 Adresse email Haut de page Bas de page 
 
linkakro



Autorisation : Membre
Nb de messages : 3772
Inscrit le : Lun 19 Oct 2009, 21:25
Posté le : Mer 17 Déc 2014, 0:25   Citer 

Oui les codes de checksum et correcteurs sont beaucoup utilisés. winkle.gif
Hélas je n'entend parler que du CRC à cause d'ethernet, bien que ce ne soit pas le seul protocole. winkle.gif (remarques: crc ne permet pas de corriger, mais il est extrêmement performant pour détecter des erreurs. Ce n'est pas le même objectif.)

----------------------
ti82statfr: 2008, inscrit: 2009, ti84pocketfr: noël2011, ti30xbmultiview: iut 2012-2014
Perfectionniste, manque tact. Pas le temps de tout publier depuis 2011. Répond toujours aux questions. (rédigé juin 2014)

Pour tout le monde et surtout les débutants, quelques-uns des articles courants :
*Traductions Algorithmie/Ti-Basic.
*Caractères spéciaux sur Tout82
Les défauts du TI-Basic : Goto_versus_algo et DelVar/End/Lbl/guillemet/store
 Adresse email Haut de page Bas de page 
 
Poster un nouveau sujet Poster une réponse





  Powered by Fire-Soft-Board v1.0.10 © 2004 - 2019 Groupe FSB
Page générée en 9 requêtes
BlackOne par Grimmlink