Qui ne possède pas une carte avec un code-barre ou une série de chiffres sur celle-ci? Avez-vous déjà remarqué les chiffres sous les codes-barres à l’arrière des livres que vous achetez ou sur les produits à l’épicerie?1
Les codes-barres sont lus par les numériseurs et les chiffres par les humains. Les cartes de crédit aussi contiennent des chiffres, seize en fait. Lorsque vous faites des achats sur Internet et que vous entrez votre numéro de carte, si vous faites une erreur en entrant les chiffres on vous dira que le numéro de la carte n’est pas valide. Ces chiffres ont une fonction bien spécifique: ils servent à vérifier la validité du code du produit ou si l’on veut ils servent de code de détection d’erreur. Que ce soit pour une carte d’assurance sociale, pour un code UPC (Universal Product Code) ou pour un numéro ISBN (International Standard Book Number), nous retrouvons une application simple des mathématiques tout à fait fascinante.
Les cartes d’assurance sociale (et certaines cartes de crédit)
Au Canada, chaque personne est identifiée par le gouvernement. La méthode utilisée pour nos cartes d’assurance sociale et certaines cartes de crédit a été développée par IBM. Pour la validation, la plupart des modèles de détection d’erreur utilisent ce qu’on appelle un chiffre-clé, souvent situé à l’extrémité droite de la série de chiffres. Les autres chiffres sont appelés chiffres d’information et peuvent être choisis au hasard mais le chiffre-clé, lui, est calculé . De plus, les espaces n’ont aucune valeur, ils servent seulement à nous aider à lire les nombres. Cependant, la position des chiffres est d’une importance primordiale. Voyons avec l’exemple suivant:
En écrivant en bleu les chiffres occupant des positions « impaires » à partir de la droite et en rouge celles occupant des positions « paires ».
En additionnant les nombres en bleu, on obtient:
En multipliant par 2 chacun des chiffres occupant une position paire, on obtient:
En additionnant les chiffres qui composent ces produits, on obtient:
En additionnant les deux résultats:
Le numéro d’assurance sociale est valide si le résultat est divisible par 10. Dans cet exemple, 40 est divisible par 10, le numéro est valide.
Comment calculer le chiffre-clé?
Le procédé de validation nous indique com- ment le chiffre-clé est calculé. Avec un peu d’algèbre et en remplaçant le chiffre-clé par x dans les calculs, nous pouvons résoudre une simple équation en x. Par exemple, supposons que la suite des chiffres d’information de votre carte d’assurance sociale soit 22501008. Alors, votre numéro d’assurance sociale serait:
et x est calculé comme suit.
Pour que 19 + x soit divisible par 10, le chiffre x doit être 1 et le numéro d’assurance sociale doit être:
Efficacité de la détection d’erreur
Les deux erreurs les plus communes lors de l’entrée des chiffres sont:
- l’entrée incorrecte d’un des chiffres;
- l’inversion de deux chiffres qui se suivent.
Il n’existe aucune méthode qui puisse détecter toutes les erreurs, mais une méthode de détection efficace doit être capable de repérer les erreurs les plus courantes. La méthode d’IBM peut détecter si un seul chiffre a été changé, même lorsqu’il s’agit du chiffre-clé.
Afin d’illustrer cette méthode, vérifions la carte de crédit ci-contre.
En remplaçant le chiffre 7 par x, nous obtenons le numéro de carte:
La position du nombre $x$ signifie qu’il doit être multiplié par 2 lors du procédé de validation. Selon la valeur de $x,$ le nombre $2x$ pourrait être composé d’un ou de deux chiffres. Considérons les deux cas séparément.
- si \(0 < x < 5\) (alors \(2x\) est composé d’un seul chiffre). En appliquant le procédé IBM, la somme finale est \(45 + 2x.\) Peu importe la valeur de \(x,\) il n’est pas divisible par 10 et alors une erreur est détectée.
- si \(5 < x < 9\) (alors \(2x\) est composé de deux chiffres). Les deux chiffres composant \(x\) sont \(1\) et \(2x-10.\)
En appliquant le procédé, la somme finale est $36+2x.$ Puisque $x \neq 7$ et que $5<x<9,$ le résultat ne peut pas être divisible par 10. Une erreur est détectée.
Le procédé d’IBM est très efficace pour détecter une erreur si un seul chiffre est entré incorrectement. Même s’il n’est pas totalement efficace pour détecter si deux chiffres ont été inversés, il peut en détecter quand même. Cette méthode détecte si deux chiffres ont été inversés lorsque les deux chiffres ne sont pas 0 et 9. (Pourriez-vous déterminer pourquoi? Voir la section problèmes).
Les codes UPC
Que veut dire UPC ? En anglais ça signifie « Universal Product Code », c’est-à-dire, Code Universel de Produit (CUP). Ce code a été utilisé pour la première fois en 1973. Il existe plusieurs versions de codes UPC dont les plus communs sont le code UPC à douze caractères de type A et celui à huit caractères de type E. Voici un exemple de code UPC:
Le code UPC de type A est composé de douze chiffres. Le premier chiffre à gauche indique le type d’UPC. Les cinq chiffres du premier groupe représentent le code du fabricant tandis que les cinq qui suivent représentent le code produit assigné par le fabricant. Le chiffre final est le chiffre-clé. On peut déterminer le chiffre-clé en faisant les opérations suivantes:
En additionnant les chiffres en position impaire, sauf le chiffre-clé, et en multipliant le résultat par 3, on obtient 57. En additionnant les chiffres en position paire, on obtient 17.
La somme de ces résultats est: 17 + 57 = 74.
On obtient le chiffre-clé en soustrayant ce résultat du multiple de 10 supérieur à la somme obtenue. On trouve donc 6 comme chiffre-clé.
Les codes ISBN
Les lettres ISBN constituent l’acronyme de International Standard Book Number (Numéro International Standardisé du Livre). Tel qu’expliqué sur le site de la Bibliothèque nationale du Québec: « Le numéro ISBN se présente, par exemple, sous la forme suivante: ISBN 2-89037-262-6
Il est toujours composé de dix chiffres répartis en quatre segments de longueur variable et séparés par un tiret:
- le premier segment indique le groupe national, linguistique, géographique ou autre. Le code « 2 », par exemple, identifie les éditeurs francophones. Ce segment désigne le groupe linguistique auquel appartient l’éditeur et non pas la langue dans laquelle le livre est publié;
- le second segment identifie l’éditeur du document: sa longueur varie en fonction du nombre d’ouvrages publiés par l’éditeur;
- le troisième segment numérote le document parmi les publications de l’éditeur: sa longueur est déterminée en fonction de la longueur des deux premiers segments;
- le quatrième segment est un chiffre de contrôle permettant de vérifier automatiquement par ordinateur la validité de l’ISBN. Ce chiffre est le résultat d’une opération mathématique. Il peut arriver que ce dernier soit un « X » au lieu d’un chiffre. C’est l’équivalent romain du chiffre « 10 » et il faut écrire X. »2
Pour vérifier un code ISBN, on multiplie chaque chiffre, sauf le dernier, par son rang et on fait la somme de ces produits. Le chiffre-clé est le reste après division de cette somme par 11. Pour illustrer cette procédure, considérons le livre Panoram@th, Manuel A • Volume 2, de Richard Cadieux, Isabelle Gendron et Antoine Ledoux aux Éditions CEC. Le numéro de cet ouvrage est : 2-7617-2138-1.
En multipliant les neuf premiers chiffres par leur rang respectif et en effectuant la somme, on obtient:
En divisant cette somme par 11, on obtient:
188 = 11 × 17 reste 1
Le numéro ISBN est valide puisque le reste est égal au chiffre-clé.
Comme ces quelques exemples l’indiquent, on trouve des mathématiques simples dans plusieurs des applications techniques qui nous entourent.
Pour en s\(\alpha\)voirplus !
Lewis, T., « We’ve got your number », $\Pi$ in the Sky, juin 2001, pp. 5-6.
- La section de cet article traitant des cartes d’assurance sociale est une traduction d’une partie de l’article « We’ve got your number » de Ted Lewis paru dans la revue $\Pi$ in the Sky de juin 2001. Par ailleurs, une version de cet article est parue dans la revue Envol. ↩
- Voir http://www.banq.qc.ca/portal/dt/a_propos_banq/nos_ publications/nos_publications_a_z/t0174.jsp#B ↩