|
Algorithme, itération, procédé,
opération ou CYCLE de KAPREKAR Deux sujets qui
touchent à Kaprekar: Nombres de Kaprekar: Objet d'une page spéciale Procédé de calcul cyclique
qui finit toujours par le même résultat (impasse)
ou par une boucle sans fin (cycle) |
Anglais: Kaprekar sequences and Kaprekar numbers / Kaprekar
routine / Kaprekar function
Dattathreya
Ramachandra Kaprekar (1905-1986)
est un mathématicien indien. Ses découvertes datent de 1949. Il est aussi le
découvreur des nombres Demlo, des
auto-nombres et du procédé pour les
tester. |
Voir dans le DicoNombre: Nombre
495 & Nombre
6174
Trouvez
la suite: 28, 38, 49, 62, 70, 77, 91, … |
|
||
Procédé itératif qui consiste à ordonner les chiffres d'un nombre par ordre
décroissant (Max) et également par
ordre croissant (Min) et à effectuer leur soustraction (D = Max – Min). La différence
(D) est soumise à nouveau à ce même procédé. Exemple Par ce procédé le nombre 14 devient 27, puis 45 puis 9 puis 0 et le
procédé prend fin.
Le cycle de Kaprekar de 14 est: [14, 27, 45, 9, 0].
Le cycle de Kaprekar de 41 est le même.
La longueur du cycle est égale à 5.
Le nombre final est 0.
Observez que 14 devient 27 = 9(4 – 1); un multiple
de 9. |
Algorithme de Kaprekar réduit (AKR) |
|
En boucle Une
manière de poursuivre le procédé de Kaprekar consiste à interpréter la
soustraction de 54 – 45 comme 09 et
non pas simplement 9. Auquel cas, la soustraction devient 90
– 09 et le cycle est relancé. Tant et si bien qu'il finit par retomber sur le nombre 09. Ce qui
constitue une boucle. L'algorithme de Kaprekar est dit complet
lorsqu'on conserve la quantité de chiffres en complétant avec les zéros
nécessaire. Sinon il est réduit. |
Algorithme
de Kaprekar complet (AKC) |
|
|
||
Calcul de la
différence Un nombre à deux chiffres s'écrit: 10a + b Comme 23 = 2 x 10 + 3 |
Nombre max: 10a + b a est plus grand que b. On exclut les nombres de
type aa qui donnent aa – aa = 0. Nombre min: 10b + a Différence:
D =
10a + b – 10b – a = 9
(a – b) Quels que soient a et b, les
différences sont des multiples de 9. Plages de variation: a peut prendre les valeurs
de 1 à 9; et b de 0 à 9. Valeurs de D: { 9, 18, 27, 36, 45, 54, 63, 72,
81} |
|
Différences de
Kaprekar Pour tout nombre (tableau du
haut), la différence de Kaprekar est l'un des cinq nombres du bas (bleus). et la suite boucle sur ces cinq nombres ou
leur permutation. Ex: 51 => 51 – 15 = 36 => 63 Seuls les nombres avec a
> b sont dans le tableau. Sinon prendre le nombre permuté. Ex: 68 => 86 – 68 = 18 => 81 |
Boucle sur les multiples de 9. |
|
Propriétés Pour
les nombres à deux chiffres non identiques (cad. hors repdigits): Le
cycle de Kaprekar réduit se termine par 0.
Le cycle de Kaprekar complet boucle dès la première itération sur {09,
81, 63, 27 et 45}. Du fait
de la construction, N = ab et M = ba suivent le même cycle (comme 14 et 41). Longueur du cycle En Kaprekar
complet, la boucle est atteinte dès la première itération. En
Kaprekar réduit, le plus petit nombre avec le cycle le plus long est 13 avec
une longueur égale à 7: [13 => 18 =>
63 => 27 => 45 =>
9 => 0] |
||
|
|||
Algorithme 1.
Choisir un nombre N; 2.
Former Max, le nombre avec les chiffres de N croissants; 3.
Former Min, le nombre avec les chiffres de N décroissants; 4.
Calculer la différence D = Max – Min; 5.
Si D est un nombre déjà trouvé, alors FIN, sinon N prend la valeur D
et aller en 2. |
Réalisation sur tableur |
||
Le nombre 13, par
exemple, est placé en B3 (exemple). |
|||
Extraction
du chiffre des UNITÉS |
=MOD(B3;10) qui
calcule le reste de la division par 10 de
13. Autre
possibilité =CNUM(STXT(B3;2;1)) qui détecte le deuxième caractère de 13 (en B3) et le convertit en
nombre. |
||
Extraction du chiffre des DIZAINES |
=(B3-D3)/10 qui
calcule 13 moins ses unités et divise par 10. Autre
possibilité =CNUM(STXT(B3;1;1)) qui détecte le premier caractère de 13 (en B3) et le convertit en
nombre. |
||
Grand |
=GRANDE.VALEUR(C3:D3;1) qui choisit le plus grand chiffre parmi les dizaines et les unités. |
||
Petit |
=GRANDE.VALEUR(C3:D3;2) qui choisit le deuxième plus grand; donc ici le plus petit. |
||
Max |
=E3*10+F3 qui
calcule la valeur du plus grand nombre. |
||
Min |
=F3*10+E3 qui
calcule la valeur du plus petit nombre. |
||
D |
=G3-H3 qui calcule la différence Max – Min |
||
Fin |
=NB.SI(I$3:I3;9) qui compte combien de fois le nombre trouvé (D) se trouve dans ceux
déjà trouvé. Cet indicateur servira de critère de fin. |
||
Nouvelle ligne, en B4 |
=SI(J3=2;"FIN";SI(I3=9;90;I3)) Double
condition: 1) si
l'indicateur FIN vaut 2, inscrire FIN dans cette cellule, sinon 2) y
placer la valeur trouvée pour D, sauf si cette valeur vaut 9, alors elle est
remplacée par 90. |
||
|
||
Explications Soit
un nombre (ici 321). Ordonner
les chiffres pour former le nombre le plus grand (321) et le nombre le plus
petit (123). Soustraire
le plus petit du plus grand (198). Recommencer
le procédé tant que l'on peut. Ici,
le procédé s'arrête du fait que la différence reproduit les mêmes chiffres,
ceux de 459. On
aurait le même résultat avec les nombres formés par la permutation
des trois chiffres: 123, 132, 213, 231, 312 et 321. Observations Nombre 321, cycle de longueur 6: [321, 198, 792, 693, 594, 495] Tous
les nombres, sauf le premier sont des multiples de 9. Avec
124, on a: 124, 297, 693, 594, 495. Avec
125, on a : 125, 396, 594, 495. Il
semble que le procédé conduit toujours à 495. |
Exemples avec les nombres 123 puis 456 |
|
|
||
Pour les
nombres à trois chiffres non identiques (cad. hors repdigits):
Le cycle de Kaprekar complet se termine par 495; et pour
51 nombres qui finissent en 99, 0. Longueur du cycle complet La
longueur est nulle et avec un fin en 0 pour les repdigits comme 111. D'où
l'exclusion de ces nombres à chiffres identiques. La longueur
maximale 7 est atteinte 51 fois et dès
le nombre 100. |
||
Caractéristique des nombres à longueur max Ce sont
les nombres dont la différence est tout de suite égale à 99; les nombres de longueur
2 en Kaprekar réduit. Le passage en cycle complet les prolonge de 5
itérations. Comment
atteindre 99 dès le premier calcul? reprenons le calcul: Min =
100c + 10b + a avec (cf.
nombre max). D = Max –
Min = 99a – 99c = 99(a – c) D = 99,
ce que l'on cherche. Rapprochement:
a – c = 1
et b = a ou c (cf. inégalité). Les nombres de trois chiffres qui produisent une
différence de Kaprekar égale à 99 comportent deux chiffres identiques et le troisième est leur
voisin. Liste des 51 nombres avec différence de Kaprekar en 99 100, 101, 110, 112, 121, 122, 211, 212, 221, 223, 232, 233, 322, 323,
332, 334, 343, 344, 433, 434, 443, 445, 454, 455, 544, 545, 554, 556, 565,
566, 655, 656, 665, 667, 676, 677, 766, 767, 776, 778, 787, 788, 877, 878,
887, 889, 898, 899, 988, 989, 998. |
Exemple de cycles de Kaprekar [100, 990, 891,
792, 693, 594, 495] [101, 990, 891,
792, 693, 594, 495] [102, 198, 792, 693, 594, 495] [103, 297, 693, 594, 495] [104, 396, 594, 495] [105, 495] [106, 594, 495] [107, 693, 594, 495] [108, 792, 693, 594, 495] [109, 891, 792, 693, 594, 495] [110, 990, 891,
792, 693, 594, 495] [111, 0] [112, 990, 891,
792, 693, 594, 495] [113, 198, 792, 693, 594, 495] [114, 297, 693, 594, 495] [115, 396, 594, 495] [116, 495] … [990, 891, 792, 693, 594, 495] [991, 792, 693, 594, 495] [992, 693, 594, 495] [993, 594, 495] [994, 495] [995, 396, 594, 495] [996, 297, 693, 594, 495] [997, 198, 792, 693, 594, 495] [998, 990, 891,
792, 693, 594, 495] [999, 0] |
|
Voir Nombre 99
La preuve par neuf nous
apprend que la somme des chiffres témoigne de la divisibilité d'un nombre par
neuf: elle indique quel est le reste de la division par neuf. Cette somme de chiffres ne dépend pas de
l'ordre des chiffres. Autrement-dit, tous les nombres qui ont la même somme
de chiffres, étant divisés par 9, ont le même reste (R). Soustraire deux tels nombres donne un nombre
dont le reste de la division par 9 est nul (R – R = 0). Par exemple, le
nombre 495 est divisible par 9 car 4 + 9 + 5 => 4 + 5 => 9 => 0 Toutes les différences Kaprekar sont
divisibles par 9. Dès la première
itération, on "joue" dans le monde des multiples de 9. |
Voir Formes permutées
|
||
Nombre de Kaprekar Avec
quatre chiffres, le procédé conduit systématiquement au nombre 6 174. Ce nombre
est appelé le nombre de Kaprekar car ce
mathématicien a inventé son algorithme avec quatre chiffres. Attention,
les nombres de Kaprekar sont aussi autre chose. Longueur du cycle complet Maximum 8
(7 itérations) pour 1004 et pour 1980 nombres. Il y a 68
nombres dont le cycle réduit est en N, 999, 0. Ce sont les nombres ayant trois
chiffres identiques et l'autre, un voisin. Liste de ces 68 nombres 1000, 1011, 1101, 1110, 1112, 1121, 1211, 1222, 2111, 2122, 2212,
2221, 2223, 2232, 2322, 2333, 3222,
3233, 3323, 3332, 3334, 3343, 3433,
3444, 4333, 4344, 4434, 4443, 4445,
4454, 4544, 4555, 5444, 5455, 5545, 5554, 5556, 5565, 5655, 5666, 6555, 6566,
6656, 6665, 6667, 6676, 6766, 6777, 7666, 7677, 7767, 7776, 7778, 7787, 7877,
7888, 8777, 8788, 8878, 8887, 8889, 8898, 8988, 8999, 9888, 9899, 9989, 9998. |
Exemple de cycles [1000, 9990, 8991, 8082, 8532, 6174] [1001,
1089, 9621, 8352, 6174] [1002,
2088, 8532, 6174] [1003,
3087, 8352, 6174] [1004,
4086, 8172, 7443, 3996, 6264, 4176, 6174] [1005,
5085, 7992, 7173, 6354, 3087, 8352, 6174] [1006,
6084, 8172, 7443, 3996, 6264, 4176, 6174] [1007,
7083, 8352, 6174] [1008,
8082, 8532, 6174] [1009,
9081, 9621, 8352, 6174] [1010,
1089, 9621, 8352, 6174] [1011, 9990, 8991, 8082, 8532, 6174] [1012,
1998, 8082, 8532, 6174] [1013,
2997, 7173, 6354, 3087, 8352, 6174] [1014,
3996, 6264, 4176, 6174] [1015,
4995, 5355, 1998, 8082, 8532, 6174] … [9990,
8991, 8082, 8532, 6174] [9991,
7992, 7173, 6354, 3087, 8352, 6174] [9992,
6993, 6264, 4176, 6174] [9993,
5994, 5355, 1998, 8082, 8532, 6174] [9994,
4995, 5355, 1998, 8082, 8532, 6174] [9995,
3996, 6264, 4176, 6174] [9996,
2997, 7173, 6354, 3087, 8352, 6174] [9997,
1998, 8082, 8532, 6174] [9998,
990, 891, 792, 693, 594, 495] [9999, 0] |
|
|
||
But |
Montrer que dès la première opération, non
seulement les nombres sont divisibles par 9, mais seuls 30 d'entre eux sont
impliqués. Comment trouver ces nombres et leur successeurs
jusqu'au nombre de Kaprekar: 6 174 ? |
|
Calcul de la
différence |
Nombre max: 1000a + 100b
+ 10c + d (a étant le plus grand chiffre) Nombre min: 1000d + 100c
+ 10b + a Différence:
D =
999 (a – d) + 90 (b – c) Inégalité: avec pas
les mêmes quatre chiffres => a>1 Inégalité induite: Plages: a – c varie de 1 à 9 et b – c de 0 à 9. On dresse le tableau des possibilités pour D
selon les valeurs de ces différences: |
|
Table des
valeurs possible selon la formule trouvée (reportée en jaune) |
|
|
Seules les
valeurs satisfaisant les inégalités sont conservées La valeur
suivante selon le procédé de Kaprekar est calculée |
|
|
Le graphe
montre l'enchainement des valeurs et leurs successeurs trouvés ci-dessus Graphe des 30 valeurs de
Kaprekar pour les nombres à quatre chiffres => |
|
|
–
Nombres à cinq chiffres |
|
|
En commençant avec le nombre 54 321, nous
retrouvons le nombre 98 622 qui occasionne une boucle sans fin. |
|
|
Exemples avec
cinq chiffres Voir Bilan ci-dessous |
[10000, 99990, 89991, 80982, 95931, 85932, 74943, 62964, 71973, 83952, 74943] [10001, 10989, 97911, 87912, 85932, 74943, 62964, 71973, 83952, 74943] [10002, 20988, 95931, 85932, 74943, 62964, 71973, 83952, 7494] [10003, 30987, 94941, 84942, 73953, 63954, 61974, 82962, 75933, 63954] [10004, 40986, 93951, 85932, 74943, 62964, 71973, 83952, 74943] [10005, 50985, 92961, 86922, 75933, 63954, 61974, 82962, 75933] [10006, 60984, 93951, 85932, 74943, 62964, 71973, 83952, 74943] [10007, 70983, 94941, 84942, 73953, 63954, 61974, 82962, 75933, 63954] [10008, 80982, 95931, 85932, 74943, 62964, 71973, 83952, 74943] [10009, 90981, 97911, 87912, 85932, 74943, 62964, 71973, 83952, 74943] [10010, 10989, 97911, 87912, 85932, 74943, 62964, 71973, 83952, 74943] |
|
Formule |
Différence = 99 { 101 (a – e) + 10(b – d) } ;
indépendant de c. Les différences pour les nombres à cinq chiffres
sont divisibles par 99 Rappel: un nombre est divisible
par 99 s'il l'est par 9 et par 11 Ex: 86 922 => 8+6+2+2= 18 => divisible par 9 et
8+9+2-6-2 = 11 divisible par 11. |
|
|
||
2 chiffres |
9
pour Kaprekar complet. 0
pour Kaprekar réduit. 0
dans les 9 cas de repdigits (qui sont
exclus pour la suite). |
|
3 chiffres |
495
pour Kaprekar complet. 495
sauf 51 cas avec 0 pour Kaprekar réduit. |
|
4 chiffres |
6
174 pour Kaprekar complet. 6
174 sauf 68 cas avec 0 pour Kaprekar réduit. |
|
5 chiffres |
0
ou l'un
des trois cycles suivants: {99 954 –
95 553} {98 532 –
97 443 – 96 642 – 97 731} {98 622 –
97 533 – 96 543 – 97 641} |
|
6 chiffres |
549
945, 631 764 {420 876 –
851 742 – 750 843 – 840 852 – 860 832 – 862 632 – 642 654} |
|
7 chiffres |
{7509843 –
9529641 – 8719722 – 8649432 – 7519743 – 8429652 – 7619733 – 8439552} |
|
8 chiffres |
63
317 664, 97 508 421 {43208766
– 85317642 – 75308643 – 84308652 – 86308632 – 86326632 – 64326654},
{63317664}, {64308654 – 83208762 – 86526432}, {97508421} |
|
9 chiffres |
554
999 445, 864 197 532 {??} |
|
10 chiffres |
6
333 176 664, 9 753 086 421, 9 975 084 201 {??} |
|
Voir Tableau plus complet
par Stéphane RAVARY Ces propriétés – impasse ou boucle – du procédé
Kaprekar sont liées à notre système de numération en base 10. Pour d'autres bases, le phénomène de convergence en impasses ou
en cycles est rare. Il marche, par exemple, pour les nombres à 4 chiffres en
base 5, 10, 40, 160 et 640 et aucune autre inférieure à 1000 (Selon Mikio Kano,
cité par François
Le Lionnais ). |
||
Curiosité – Cas des nombres pannumériques
Tout
nombre pannumérique donne toujours le même
max et le même min, donc, la même différence. Or la
différence est, elle-même, pannumérique. Le cycle boucle
sur une seule itération |
|
|
||
Cas de Kaprekar réduit Modification pour obtenir le cycle complet |
Commentaires Mise en
place d'une procédure: une fonction kaprekar qui pourra être appelée en
précisant le nombre n à analyser. Tant que
(while) le nouveau nombre (N) n'est pas égal à l'ancien (Nmem), on boucle. On range
N dans la liste L. On
extrait les chiffres de N dans M, en les triant (sort) du plus petit au plus
grand. On
reconstruit les deux nombres maximum et minimum pour les soustraire en P. On
conserve la trace de N en Nmem et on donne la nouvelle valeur P à n pour
relancer l boucle. On
retourne la liste L des nombres de Kaprekar trouvés. Notez la présence d'un garde-fou au cas où la quantité
d'itérations viendrait à dépasser mille tours. Utile pour les nombres à plus
de quatre chiffres. Pour plus de quatre chiffres,
une amélioration serait nécessaire si on voulait stopper en cas de boucles. Appel de
la fonction kaprekar pour n = 456 qui affiche la séquence en bleu. Pour
obtenir le programme pour le procédé complet (ajout de zéros), on reprend les
dernières lignes comme indiqué. Test si
le nombre P est égal à 99, si oui on lui ajoute un zéro, sinon on le conserve
tel quel pour le placer dans N. |
|
Programme pour copier-coller dans Maple kaprekar := proc (n) local N, Nmem, M, q,
Mmax, Mmin, P, L, kt; N := n; Nmem := 0; L := []; kt := 0; while N <>
Nmem do L := [op(L), N]; kt := kt+1; M := sort(convert(N, base, 10)); q :=
nops(M); Mmax := add(M[i]*10^(i-1), i = 1 .. q); Mmin :=
add(M[q-i+1]*10^(i-1), i = 1 .. q); P := Mmax-Mmin; Nmem := N; N := P; if
1000 < kt then L = [tropgrand]; N := Nmem end if end do; return L end
proc: kaprekar(456):
lprint(%): |
||
Voir Programmation – Index
|
||
Avec
Kaprekar on retranche; avec RATS, on ajoute et on trie les chiffres du
résultat. |
Exemple:
758
+ 857 = 1615 qui
devient 1156, en
ordonnant les chiffres par ordre croissant. |
|
Le but est
de donner la liste de tels résultats selon le nombre utilisé pour débuter. |
1, 2, 4, 8, 16, 77, 145, 668, 1345,
6677, 13444, 55778 … Exemple de calculs: 16 + 61 = 77 puis 77 + 77 = 154
=> 145 … |
|
Séquence
débutant par 1 Les 31
premières valeurs Observez
le basculement entre deux valeurs qui enflent d'un 3 ou d'un 6 à chaque
itération. On aura la
même séquence en commençant par 2, 4, 8 … Avec 5 qui
donne 10 puis 1, on aussi cette séquence. |
|
|
Séquence
débutant par 3 Certaines
séquences tourner ne boucle, comme celle commençant par 3. Celle-ci
compte 14 valeurs dont 8 pour le cycle débutant par 444. On aura la
même séquence en commençant par 3, 6, 12… |
|
|
Séquence
débutant par 7 Elle
rejoint la séquence 1 |
|
|
Voir OEIS A004000 - RATS: Reverse Add
Then Sort the digits applied to previous term, starting with 1.
OEIS A066710 -
RATS: Reverse Add Then Sort the digits applied to previous term, starting with
3.
|
|
The Kaprekar routine is an algorithm discovered in
1949 by D. R. Kaprekar for 4-digit numbers, but which can be generalized to
k-digit numbers. The Kaprekar numbers:
Take a four-digit number with different
digits.
(2) Form the largest and the smallest number
from these four digits
(3) Find the difference of these digits. You may have to repeat
this procedure. The end result is always
6174, but there are no more than seven steps. A Kaprekar's famous
discoverie is the Kaprekar constant, or
6,174. Although this number may seem ordinary on the surface, it is actually
quite spectacular! Take any four digit number of your choice. Arrange the
digits in descending order and subtract the digits arranged in ascending
order. Keep doing this over and over and in no more than 7 tries, you will
have 6,174. |
Trouvez
la suite: 28, 38, 49, 62, 70, 77, 91, … Chaque
nombre est égal au précédent plus la somme de ses chiffres: 28 + 2 + 8 = 38,
…77 + 7 + 7 = 91 Le
suivant est donc: 91 + 9 + 1 = 101. |
Retour
/ Voir Jeux et énigmes – Index
Merci à Pascal R.
Suite |
|
Voir |
|
Diconombre |
Nombre
9 Nombre
495 Nombre
6 174 Nombre
82 962 & 98 622 |
Sites |
Algorithme
de Kaprekar – Graphe pour tous les nombres de 4 chiffres
OEIS A151949 – Image of n under the
Kaprekar map
OEIS A099009 – Fixed points of the
Kaprekar mapping
OEIS A099010 – Numbers belonging to cycles
of length greater than 1. Listes de nombres de
Kaprekar – Robert Munafo Kaprekar Routine
– Wolfram MathWorld Mysterious
number 6174 – Yutaka Nishhiyama |
Cette page |
http://villemin.gerard.free.fr/Wwwgvmm/Iteration/Kaprekar.htm |