samedi 21 octobre 2017

Grands nombres palindromes

Dans son article sur les nombres palindromes du Pour la Science n°480, Jean-Paul Delahaye nous lance un défi de voir si l'on pouvait repousser les limites du plus grand nombre palindrome construit à partir de N chiffres et des 4 opérations + - * /.
Un nombre palindrome est un nombre « miroir », il a la même valeur lu de gauche à droite ou de droite à gauche : 9, 727, 12321, ...
Les records précédents, listés sur le site de Erich Friedman (Math and Computer Science Department at Stetson University, Floride) étaient les suivants, trouvés par Erich Friedman :


Nb chiffresFormulePlus grand palindrome
127×8×8×8×8×9 × (4×7×7×9×9−3)4095995904
137×7×7×7×7×8 × (7×7×7×8×8×8+6)23613431632
149×9×9×9×9×9 × (9×9+2) × (4×7×7×8−6)68899199886
157×7×7×7×8×8×8×8×8 × (2+9) × (9×9×9+3)633498894336

En cherchant en brute force on est vite limité : pour passer de N à N+1, on ajoute un chiffre et un opérateur en plus ce qui multiplie par 9×4=36 la complexité. Pour 15 chiffres cela ferait 915×414=55268479930183339474944 soit près de 1023 possibilités à parcourir...

Une autre technique consiste à penser chaque résultat comme la combinaison de 2 résultats, chacuns pouvant être eux-mêmes le résultat de 2 résultats, etc.
Notons ni un nombre combinaison de i chiffres; 72 est un n2 car 8×9=72, 82 est un n3 car 9×9+1=82. Par exemple pour N=13 on a le produit d'un n6 et un n7 : le n6 A=7×7×7×7×7×8, et le n7 B=(7×7×7×8×8×8+6). A et B étant eux mêmes composés de 2 éléments nx : A est le produit de deux n3 (7×8×8)×(8×8×9) et B est le produit d'un n5 et d'un n1 :(4×7×7×9×9)−(3). Chacun peu à nouveau se décomposer jusqu'à des n1.
Donc en stockant tous les n2, on peut les réutiliser pour calculer tous les n3, etc.
Remarque : dans notre cas on cherche le palindrome le plus grand, donc on ignorera la division, car tout ni / x est un nj avec j<i.
Voici le nombre de ni , comparé au nombre de combinaisons possibles :

 i Nombre de niNombre de combinaisons ci de i chiffres (9i×3i−1)%age n/ ci
23024312.3456789012%
315565612.3624447493%
47391771470.4171676630%
5366547829690.0766260455%
6168071291401630.0130145414%
77611734867844010.0021830142%
8363831941431788270.0003864656%
9176405025418658283290.0000006939%
108331952686303773648830.0000001214%

On peut alors parcourir l'arbre de recherche considérablement rétréci, et finir par trouver en 2h de calcul tous les n13 (et donc le plus grand palindrome parmi ceux-ci), puis les n14, et les n15 en quelque 8h de calcul sur un simple PC. Voici donc les nouveaux résultats que j'ai obtenu, courant 2017 :

Nb chiffresFormulePlus grand palindromeDate
139×9×9×9×9×9 × (6×7×7×7×7×9−8)6889919988610/2017
14(9×9×9×9×9×5+4) × (8×8×8×8×9×9−5)9795505597910/2017
15((5×9×9×9×9×9−7)×7) × ((8×9×9×9×9−7)×8)86768558676810/2017
16((7×7×7×7×7×8−5)×4) × (9×8×8×8×8×8×8×7)888187178188810/2017
17(8×8×8×8×8×(9×9×7+2)) × ((9×9×9×9×8×7+6)×9)6165522225561610/2017
18(8×8×(8×8×8×8×8×7+1)) × (9×(9×9×9×9×9×9×9−1))63193124213913610/2017
19(6×8×8×8×8×8×8×9×9+5) × (9×8×8×(7×8×8×8×9+7))236757333375763210/2017
20(8×8×8×8×8×9×9×9×9+3) × (9×9×7×(6×9×9×9×9×9+8))4318934737439813410/2017
21((8×8×8×8×8×9×9×9+5)×7×9) × (2×8×8×9×9×9×9×9×9+3)8692506252605296810/2017
22(6×9×9×9×9×9×9×9×9+3)×9 × ((7×7×7×7×9×9×9+7)×7×9×9)230695075757059603210/2017
23((8×8×8×9×9×9×9×9×9×9-1)×9) × ((7×9×9-2)×9×9×9×9×9×9-3)661779845254897716611/2017
24((7×9×9×9×9×9×9−8)×9×9×9×9) × (((6×8×8×8×8×8+5)×8×9×9+1)×9)953997246264279935911/2017

Le programme décrit donne non pas la formule mais la valeur du palindrome et seulement la dernière opération qui y a mené (une multiplication entre un ni et un nj). Il faut donc retrouver la décomposition de chacun. Un autre programme parcourt les possibilités qui y mènent.

La porte est ouverte pour d'autres records...