XL 2013 Clé de contrôle du RIO [Résolu]

eddy1975

XLDnaute Occasionnel
Bonjour le forum,

Je cherche à mettre en forme sur une feuille Excel le calcul de la clé (ccc) du numéro RIO, cependant je n'arrive pas à décrypter le principe de calcul suivant :

La clé de contrôle CCC permet de détecter une incompatibilité entre le code RIO et le numéro de téléphone, les erreurs de recopie manuelle étant fréquentes. Cette clé est calculée à partir :

des trois premiers champs du RIO (OO et Q)
du numéro de contrat (RRRRRR)
et du numéro de téléphone à 10 chiffres de l'abonné, noté EZABPQMCDU (ex. : 0611223344).

Le code est calculé de la manière suivante (exemple en python) :

def calculCCC( OO, Q, RRRRRR, EZABPQMCDU): # les paramètres sont de type chaîne, ex : "00"
concatenation = OO + Q + RRRRRR + EZABPQMCDU
ordre = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+" # caractères utilisés pour le codage (37 différents)

a = b = c = 0 # initialisation de a, b et c

for i in range(19): # boucle de 0 à 18, pour chaque index de position dans concatenation
position = ordre.find(concatenation) # on retrouve la position du caractère concatenation dans ordre

a = (1 * a + position) % 37 # calcul du nombre a, "% 37" pour modulo 37
b = (2 * b + position) % 37
c = (4 * c + position) % 37

return ordre[a] + ordre + ordre[c] # on encode a, b et c en leur caractères correspondants, et on concatène le tout

J'ai mis tout l'avancement de mes calculs dans le fichier joint et je bloque.......

Merci pour votre aide.
 

Pièces jointes

  • Classeur1.xlsx
    15.4 KB · Affichages: 141
  • Classeur1.xlsx
    15.4 KB · Affichages: 108

Lolote83

XLDnaute Barbatruc
Re : Clé de contrôle du RIO

Salut EDDY-1975,
Pas sur d'avoir tout compris.
Le python et moi ça fait deux, voire trois ou quatre .....
Donc avant de "macrotiser" tout ceci, ta trame est intéressante et j'ai continué avec ce que j'ai compris.
Ligne 26,27 et 28 pour le calcul des a, b et c
Par contre la suite ????
return ordre[a] + ordre + ordre[c] # on encode a, b et c en leur caractères correspondants, et on concatène le tout

Je ne vois pas ce qu'il convient de faire.
Plus d'explication pourrait peut être nous aider
@+ Lolote83
 

Pièces jointes

  • Copie de EDDY-1975 - Calcul clé RIO.xlsx
    16.8 KB · Affichages: 177

GiBi77930

XLDnaute Nouveau
Bonjour,
Quelq'un pourrait me dire pourquoi cette feuille de calcul ne fonctionne pas, j'avoue que j'arrive un peu en retard !!!

Merci beaucoup
je suis encore plus en retard, mais je cherche aussi a recréer un RIO;
En connaissant un RIO exemple et le mode de calcul je devrais trouver la même clef et pourtant, ce n'est pas la cas; J'ai pourtant modifié la feuille Excel qui me semblait fausse et incomplète... pourtant, le résultat me déçoit.
Quand a répondre a la question pourquoi la feuille initiale ne fonctionne pas ?
C'est parce que le calcul récurrent est faux.
Prenons le calcul de b
b = (2 * b + position) % 37
le b de gauche est le résultat de l'opération de droite calculée avec le b du calcul précédent.
C'est là l'erreur.

EDIT: J'ai trouvé mon erreur; Ca fonctionne bien !;
(Python et Excel aboutissent au même code de contrôle)
 
Dernière édition:
M

MATHIEUDELAM

Guest
je suis encore plus en retard, mais je cherche aussi a recréer un RIO;
En connaissant un RIO exemple et le mode de calcul je devrais trouver la même clef et pourtant, ce n'est pas la cas; J'ai pourtant modifié la feuille Excel qui me semblait fausse et incomplète... pourtant, le résultat me déçoit.
Quand a répondre a la question pourquoi la feuille initiale ne fonctionne pas ?
C'est parce que le calcul récurrent est faux.
Prenons le calcul de b
b = (2 * b + position) % 37
le b de gauche est le résultat de l'opération de droite calculée avec le b du calcul précédent.
C'est là l'erreur.

EDIT: J'ai trouvé mon erreur; Ca fonctionne bien !;
(Python et Excel aboutissent au même code de contrôle)

Bonsoir,
quelle était l'erreur? as-tu le fichier modifié?
 

Discussions similaires