Deutsch   English   Français   Italiano  
<sgv423$2ia$1@cabale.usenet-fr.net>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!usenet-fr.net!.POSTED!not-for-mail
From: Olivier Miakinen <om+news@miakinen.net>
Newsgroups: fr.sci.maths
Subject: =?UTF-8?Q?Re:_Modulo_tout_retourn=c3=a9_dans_les_clefs?=
Date: Sat, 4 Sep 2021 08:34:43 +0200
Organization: There's no cabale
Lines: 182
Message-ID: <sgv423$2ia$1@cabale.usenet-fr.net>
References: <sgap79$vsa$2@shakotay.alphanet.ch>
 <sgbruv$2n00$1@cabale.usenet-fr.net> <sgd0df$sch$2@shakotay.alphanet.ch>
 <sgtnp9$2n5o$1@cabale.usenet-fr.net> <sguc4k$3dg$1@shakotay.alphanet.ch>
NNTP-Posting-Host: 220.12.205.77.rev.sfr.net
Mime-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Trace: cabale.usenet-fr.net 1630737283 2634 77.205.12.220 (4 Sep 2021 06:34:43 GMT)
X-Complaints-To: abuse@usenet-fr.net
NNTP-Posting-Date: Sat, 4 Sep 2021 06:34:43 +0000 (UTC)
User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101
 Firefox/52.0 SeaMonkey/2.49.4
In-Reply-To: <sguc4k$3dg$1@shakotay.alphanet.ch>
Bytes: 6283

Le 04/09/2021 01:46, Benoit a écrit :
> 
>> 2e cas : deux chiffres sont erronés.
>>
>> Voici un exemple d'erreur possible : ajouter 1 à un chiffre du code INSEE
>> (par exemple le passer de 1 à 2 ou de 5 à 6), et simultanément ajouter 7
>> au chiffre qui se trouve cinq rangs plus loin (par exemple le passer de 0
>> à 7 ou de 2 à 9). Ceci est possible parce que 100007 est un multiple de
>> 97 (c'est 1031 fois 97). Cette erreur peut concerner 8 paires de chiffres
>> d'un nombre de 13 chiffres. Par ailleurs, elle peut concerner 9 valeurs
>> du premier chiffre (de 0 à 8) et 3 valeurs de l'autre chiffre (de 0 à 2).
>> L'erreur associée au nombre 100007 doit donc être comptée 216 fois car
>> 8×9×3 = 216.
> 
> N’y a-t-il pas :
> 
> —      3 007 : 97 x 31 ==> 10 x 7 x 3 = 210 erreurs
> —  7 000 005 : 97 x 72 165 ==> 7 x 3 x 5 = 105 erreurs
> - 50 000 008 : 97 x 515464 ==> 6 X 5 X 2 = 60 erreurs

Oui. Bien vu, et bien calculé. Outre 100 007, les nombres 3 007, 7 000 005
et 50 000 008 sont les seuls pour lesquels le changement de deux chiffres
*dans le même sens* est une erreur indétectable. Et tu as bien calculé le
nombre de possibilités pour chaque.

Mais il ne faut pas oublier que l'on peut aussi *augmenter* un chiffre tout
en *diminuant* un autre chiffre. Cela veut dire qu'en plus de chercher les
multiples de 97 de la forme (d1 × 10^n + d2) il faut aussi considérer ceux
de la forme (d1 × 10^n - d2).

Voir la liste (sortie de mon programme) en fin de cet article.

> 375 erreurs potentielles. Pas beaucoup, mais pour une fois c’est mieux
> d’avoir un 0 en maths :)

:-D

> Puis 60 000 000 000 007 mais 14 chiffres et je ne sais aller au-delà
> avec mon bon vieil Excel.

J'aurais pu aller plus loin avec Python, mais je me suis arrêté aux 13
chiffres du numéro de sécurité sociale.

> [...]
> 
> Pour les numéros de cartes bancaires c’est la Formule de Luhn qui est
> utilisée, mais là je ne sais pas comment calculer pour le problème
> énoncé ci-dessus. Si le résultat doit être un multiple de 10 je ne vois
> pas comment cela peut être plus sûr.
> 
> <https://fr.wikipedia.org/wiki/Formule_de_Luhn>

Merci, je vais aller lire ça.


Maintenant la sortie de mon programme pour le modulo 97 dans un code à
13 chiffres :
========================================
$ code_correcteur.py 97
97 ←11→ +1 -3
 11×9×7 = 693
194 ←11→ +2 -6
 11×8×4 = 352
291 ←11→ +3 -9
 11×7×1 = 77
3007 ←10→ +3 +7
 10×7×3 = 210
9991 ←9→ +1 -9
 9×9×1 = 81
100007 ←8→ +1 +7
 8×9×3 = 216
7000005 ←7→ +7 +5
 7×3×5 = 105
50000008 ←6→ +5 +8
 6×5×2 = 60
89999995 ←6→ +9 -5
 6×1×5 = 30
599999999 ←5→ +6 -1
 5×4×9 = 180
2999999995 ←4→ +3 -5
 4×7×5 = 140
19999999999 ←3→ +2 -1
 3×8×9 = 216
39999999998 ←3→ +4 -2
 3×6×8 = 144
59999999997 ←3→ +6 -3
 3×4×7 = 84
79999999996 ←3→ +8 -4
 3×2×6 = 36
99999999995 ←2→ +1 -5
 2×9×5 = 90
1999999999997 ←1→ +2 -3
 1×8×7 = 56
3999999999994 ←1→ +4 -6
 1×6×4 = 24
5999999999991 ←1→ +6 -9
 1×4×1 = 4
Total pour 97 = 2798
========================================

Tant que j'y suis, le résultat pour 93 :
========================================
$ code_correcteur.py 93
93 ←11→ +1 -7
 11×9×3 = 297
3999 ←10→ +4 -1
 10×6×9 = 540
7998 ←10→ +8 -2
 10×2×8 = 160
19995 ←9→ +2 -5
 9×8×5 = 360
399993 ←8→ +4 -7
 8×6×3 = 144
2999994 ←7→ +3 -6
 7×7×4 = 196
79999995 ←6→ +8 -5
 6×2×5 = 60
90000006 ←6→ +9 +6
 6×1×4 = 24
499999992 ←5→ +5 -8
 5×5×2 = 50
600000009 ←5→ +6 +9
 5×4×1 = 20
5999999997 ←4→ +6 -3
 4×4×7 = 112
69999999996 ←3→ +7 -4
 3×3×6 = 54
499999999998 ←2→ +5 -2
 2×5×8 = 80
999999999996 ←1→ +1 -4
 1×9×6 = 54
1999999999992 ←1→ +2 -8
 1×8×2 = 16
Total pour 93 = 2167
========================================

Et les résultats non détaillés (juste le total) pour tous les nombres à
deux chiffres qui sont premiers avec 10 :
========================================
$ code_correcteur.py 10 99
Total pour 11 = 15786
Total pour 13 = 17330
Total pour 17 = 15973
Total pour 19 = 14645
Total pour 21 = 13398
Total pour 23 = 11750
Total pour 27 = 12342
Total pour 29 = 8928
Total pour 31 = 8316
Total pour 33 = 13320
Total pour 37 = 10186
Total pour 39 = 7220
Total pour 41 = 7436
Total pour 43 = 5716
Total pour 47 = 5296
Total pour 49 = 5487
Total pour 51 = 5130
Total pour 53 = 4168
Total pour 57 = 4371
Total pour 59 = 4920
Total pour 61 = 3499
Total pour 63 = 4608
Total pour 67 = 4457
Total pour 69 = 3918
Total pour 71 = 3441
Total pour 73 = 5673
Total pour 77 = 7282
Total pour 79 = 2491
Total pour 81 = 3494
Total pour 83 = 2863
Total pour 87 = 3541
Total pour 89 = 2669
Total pour 91 = 6666
Total pour 93 = 2167
Total pour 97 = 2798
Total pour 99 = 10290
Meilleur total : 2167 pour 93
========== REMAINDER OF ARTICLE TRUNCATED ==========