Pierre Henri Palmade, Claude Morin et Dominique Ceugniet ont résolu le problème.
Solution proposée par Pierre Henri Palmade
La calculette effectue la division euclidienne de N=10^25 par la mantisse p comprise entre 10^11(inclus) et 10^12(exclu) N=pq+r avec r<p. Pour obtenir le nombre initial après une double opération, il faut et il suffit que cette division soit réversible, c'est à dire qu'on obtienne le quotient p en divisant N par q, c'est à dire si et seulement si r<q.
Ce sera évidemment le cas si p<q c'est à dire si p<rac(N) soit p < 316227766016. Pour les autres, il suffit de remarquer que pour p<rac(N), l'application qui fait correspondre q à p est injective (en effet,(p+1)q=pq+q>pq+p>pq+r=N; deux nombres consécutifs, a fortiori deux nombres quelconques ne peuvent avoir le même quotient). En mettant de coté 10000000000 qui est son propre inverse, il y aura donc autant de mantisses supérieures à rac(N) donnant une division réversible, que de mantisses inférieures à rac(N)Il y aura donc 2*216227766016 +1= 432455532033 mantisses réversibles soit moins d'une sur deux.
Solution de Dominique Ceugniet
On demande pour combien de mantisses de 12 digits la double inversion est invariante
1 ? Transformation de la question pour en faire un problème sur des nombres entiers pour le résoudre par l'arithmétique.
Les mantisses possibles sont de la forme :a,bcdefghijkl où a est un chiffre strictement positif et b, c, d, e, f, g, h, u, j, k et l des chiffres quelconques. Elles sont donc au nombre de 900 000 000 000. En voici la liste :
1,00000000000
1,00000000001
1,00000000002
?
9,99999999999
On appellera F la fonction qui à x associe la mantisse obtenue lorsque l'on appuie sur la touche 1/x de la calculatrice. Le problème est d'étudier le nombre des invariants de la fonction G = F ° F.
On peut considérer que la fonction F est elle même composée de deux fonctions : la fonction F 1(x) = 1/x, et la fonction F 2 qui a tout rationnel associe la mantisse de sa représentation sur cette calculette. F = F 2 ° F 1.
Les mantisses dont on parle sont des décimaux x tels que :
1 ≤ x < 10
Il en résulte que :
10 -1 < 1/x ≤ 1
10 -1 < F 1 (x) ≤ 1
On a dit que le problème ne concernait que les mantisses et non les exposants. En effet, le comportement de 3.2889 10 n, en ce qui concerne sa mantisse est le même quel que soit la valeur de l'exposant entier n.
F 1(3.2889 10 0)= 3,0405302684? 10 -1
F 1(3.2889 10 2)= 3,0405302684? 10 -3
F 1(3.2889 10 43)= 3,0405302684? 10 -44
etc?
Pour cette raison, nous allons nous intéresser aux nombres de la forme M=10 11 * x, qui auront donc comme on vient de le dire, le même comportement vis à vis de la mantisse face à la fonction F 1 :
Du fait que :1 ≤ x < 10 on déduit :10 11 ≤ x*10 11 < 10 12
Comme les mantisses que nous étudions sont des décimaux qui s'écrivent avec pas plus de onze chiffres après la virgule, leur produit par 10 11 sont des entiers ; ils sont compris entre 100 000 000 000 et 999 999 999 999. Étudier les mantisses x décrites ci-dessus revient dans le cadre de ce problème à étudier les entiers M compris entre 100 000 000 000 et 999 999 999 999.
100 000 000 000 ≤ M < 1 000 000 000 000
10 11 ≤ M < 10 12
À F 1 correspond la fonction F' 1 qui, elle s'applique aux entiers M :F' 1(M) = 1/M
Mais puisque :
10 11 ≤ M < 10 12
10 -12 < 1/M ≤ 10 -11
10 -12 < F' 1(M) ≤ 10 -11
Une fois de plus, comme nous ne sommes intéressés que par la mantisse des résultats, on trouvera judicieux de s'intéresser non pas à F' 1(M) mais à F'' 1(M) =10 23 F' 1(M)
10 23 *10 -12 < 10 23 * F' 1(M) ≤ 10 23 *10 -11
10 11 < F'' 1(M) ≤ 10 12
Les F'' 1(M) ne sont pas des entiers, en général, par contre comme on doit appliquer la fonction F 2 qui prend la mantisse comportant les douze premiers chiffres décimaux de l'argument, la combinaison de F'' 1 et de F 2 donne purement et simplement le résultat de la division euclidienne de 10 23 par les M, nombres entiers compris entre 10 11 et 10 12. Toute petite difficulté cependant :
10 11 ≤ M < 10 12
10 11 < F'' 1(M) ≤ 10 12
Le comportement de la fonction F''(M) est un peu différent pour l'argument M 0=100 000 000 000, ceci à cause du signe ≤ qui se trouve à gauche de M pour la première ligne, et à droite de F'' 1(M) pour la deuxième. Nous ferons donc une exception, nous étudierons la fonction F'' 1(M) pour 10 11 < M < 10 12, laissant le cas M 0 à part comme cas particulier, ce qui permettra de dire que 10 11 < F'' 1(M) < 10 12.
Il résulte de tout ceci qu'étudier le comportement des 900 000 000 000 différentes mantisses possibles lorsque l'on applique la fonction F revient exactement à étudier le comportement de la division euclidienne de 10 23 par les 900 000 000 000 entiers mentionnés ci-dessus.
Le problème est devenu arithmétique.
2 ? Étude du problème arithmétique
On posera K = 10 23
Appelons E l'ensemble des entiers de 100 000 000 001 à 999 999 999 990. Nous excluons les nombres 999 999 999 991 à 999 999 999 999 pour une raison que nous expliquons ci-dessous.
Notre problème revient donc à faire deux divisions euclidienne et à compter le nombre des nombres pour lesquels le deuxième quotient est égal au nombre de départ :
Étant donné un nombre M, on fait une première division euclidienne :
K = M * q 1 + r 1 avec 0 ≤ r 1 < M
La raison de l'exclusion des 9 derniers nombres à partir de 999 999 999 991 apparît ici. En effet, pour chacun de ces neuf exceptions, on trouve q1=100 000 000 000 qui n'appartient pas à E, ce qui gêne le raisonnement. De toutes façons, on constate justement que pour ces 9 exceptions, la double inversion ne marche pas puisque la mantisse obtenue après deux inversions est 1,00000000000.
puis une deuxième :K = q 1 * q 2 + r 2 avec 0 ≤ r 2 < q 1
La question est donc de savoir si oui ou non q 2 = M
Appelons h l'application qui à M associe q1. Appelons F l'image de E par cette application, G l'ensemble des invariants de F par h ° h. Nous nous proposons de montrer que F est confondu avec G à une exception près. Dans un deuxième temps, nous dénombrerons l'ensemble F, ce qui répondra à la question posée.
Il est évident qu'un élément de G appartient à F. En effet soit M un élément de G ; par définition, M = h ° h (M) = h[ h(M) ]. M est donc l'image de h(M) par h ; il appartient à F.
La réciproque est moins évidente. Soit M un élément de F. Il existe donc au moins un nombre N tel que h(N) = M. En d'autres termes :
K = N * M + r 1 avec 0≤ r 1 < N
Deux cas peuvent se produire :
a) Si N ≤ M, alors 0≤ r 1 < N ≤ M et l'expression :K = N * M + r 1 avec 0≤ r 1 < M montre que N est le résultat de la division euclidienne de K par M et par conséquent, que N = h(M). Alors h(N)=M montre que h[h(M)] = h ° h (M)=M. M est donc un invariant par h ° h et appartient à G.
b ) Si au contraire N > M, l'écriture :K = N * M + r 1 avec 0 ≤ r 1 < N ne permet pas d'affirmer que M soit le quotient de la division euclidienne de K par N, et pour cause, car effectivement, ce n'est pas toujours le cas. Il est possible que 0 ≤ M ≤ r 1 < N
Mais si N>M, alors N*M > M 2 et a fortiori K = N * M + r 1 > M 2
Faisons une deuxième division euclidienne :
K = M * P + r 2 avec 0 ≤ r 2 < M
K > M 2 se traduit alors par :
M * P + r 2 > M 2
M*(M-P) < r 2 < M
D'où M-P < 1 et M-P ≤ 0 soit M ≤ P
On peut donc écrire :
K = M * P + r 2 avec 0 ≤ r 2 < M ≤ P
P est défini comme le quotient euclidien de K par M, mais on constate également que M est le quotient euclidien de K par P. Par conséquent h(K)= P, h(P) = M, h ° h (M) = M et M appartient à G.
3 ? Comptage
Ainsi, l'ensemble des entiers invariants par h ° h n'est pas autre chose que l'ensemble des images des éléments de E par h.
Comparons h(n) et h(n+1)
K/n ? K/(n+1) = K / [n*(n+1)]
Tant que [n*(n+1)] est inférieur à K, la différence entre K/n ? K/(n+1) est supérieure à 1. Par conséquent la différence entre h(n) et h(n+1) qui sont les parties entières de ces deux expressions, diffère au moins de 1.
L'équation [n*(n+1)] = K a une solution positive qui est très proche de √K-0.5 soit 316227766016.3? Il est facile de vérifier à la main que, si n=316227766016, alors n*(n+1)= 99 999 999 999 786 272 278 272 < 10 23 et que si n=316227766017, alors n*(n+1)= 100 000 000 000 418 727 810 306 > 10 23.
Donc h(100000000001)= 999999999990
h(100000000002)= 999999999980
h(100000000003)= 999999999970
?
h(316227766016)= 316227766017
h(316227766017)= 316227766016
216 227 766 017 nombres différents sont les images des 216 227 766 017 entiers entre 100000000001 et 316227766017 inclus.
Par contre dès l'instant que K/n ? K/(n+1) est inférieur à 1, plusieurs nombres successifs peuvent donner le même résultat. Mais on sait justement que puisque K/n ? K/(n+1) est inférieur à 1, toutes les valeurs situées entre 316227766016 et 100000000001 seront atteintes au moins une fois, aucune d'entre elles ne pouvant y échapper.
Par exemple, de 316 227 766 018 à 316 228 766 017 inclus, soit sur 1 000 000 d'arguments successifs, les valeurs de h varient de 316 227 766 015 à 316 226 766 019 soit sur 999 997 valeurs différentes.
De 316 227 766 018 à 326227866017 inclus, soit sur 10 000 000 000 d'arguments successifs, les valeurs de h varient de 316 227 766 015 à 306 534 206 353, soit sur 9 693 559 663 valeurs différentes.
Enfin, h(999999999990)= 100000000001
Ainsi, toutes les valeurs de 100 000 000 001 à 316 227 766 015 sont atteintes au moins une fois, ce qui fait un total de 216 227 766 015 valeurs.
Au total nous ajoutons donc les 216 227 766 017 nombres différents obtenus dans la première partie et les 216 227 766 015 valeurs différents obtenues dans la deuxième, ainsi que la mantisse exception 1.00000000000 que nous avons exclue de notre raisonnement pour un total de 432 455 532 033. Compte tenu du raisonnement, on constate que ce nombre est très proche de 2*(√10 ?1)*10 11. La probabilité de succès de la double inversion est donc environ 2*(√10 ?1)/9 soit environ 48%. On notera que si le nombre commence par 1 ou 2 le succès est certain.
Je n'ai pas refait le même raisonnement pour le cas de l'arrondi (au lieu de la troncature), mais je soupçonne que le comportement est exactement le même également dans ce cas. On constate enfin, que ce résultat est essentiellement dépendant du mode de représentation décimal. Le calcul pour une représentation binaire fournirait un résultat différent.