A807 – Une calculette toute simple (***** à la main)
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 F1(x) = 1/x, et la fonction F2 qui a tout rationnel associe la mantisse de sa représentation sur cette calculette. F = F2 ° F1.
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 < F1 (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 10n, en ce qui concerne sa mantisse est le même quel que soit la valeur de l’exposant entier n.
F1(3.2889 100)= 3,0405302684… 10-1 F1(3.2889 102)= 3,0405302684… 10-3 F1(3.2889 1043)= 3,0405302684… 10-44 etc…
Pour cette raison, nous allons nous intéresser aux nombres de la forme M=1011
* x, qui auront donc comme on vient de le dire, le même comportement vis à vis de la mantisse face à la fonction F1 :
Du fait que :1 ≤ x < 10 on déduit :1011 ≤ x*1011 < 1012
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 1011 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 1011 ≤ M < 1012
À F1 correspond la fonction F’1 qui, elle s’applique aux entiers M :F’1(M) = 1/M
Mais puisque : 1011 ≤ M < 1012 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)
=1023 F’1(M)
1023 *10-12 < 1023 * F’1(M) ≤ 1023 *10-11 1011 < F’’1(M) ≤ 1012
Les F’’1(M) ne sont pas des entiers, en général, par contre comme on doit appliquer la fonction F2 qui prend la mantisse comportant les douze premiers chiffres décimaux de l’argument, la combinaison de F’’1 et de F2 donne purement et simplement le résultat de la division euclidienne de 1023 par les M, nombres entiers compris entre 1011 et 1012. Toute petite difficulté cependant : 1011 ≤ M < 1012
1011 < F’’1(M) ≤ 1012
Le comportement de la fonction F’’(M) est un peu différent pour l’argument M0=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 1011 < M < 1012, laissant le cas M0 à part comme cas particulier, ce qui permettra de dire que 1011 < F’’1(M) < 1012.
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 1023 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 = 1023
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 * q1 + r1 avec 0 ≤ r1 < 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 = q1 * q2 + r2 avec 0 ≤ r2 < q1
La question est donc de savoir si oui ou non q2 = 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 + r1 avec 0≤ r1 < N Deux cas peuvent se produire :
a) Si N ≤ M, alors 0≤ r1 < N ≤ M et l’expression :K = N * M + r1 avec 0≤
r1 < 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 + r1 avec 0 ≤ r1 < 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 ≤ r1 < N
Mais si N>M, alors N*M > M 2 et a fortiori K = N * M + r1 > M 2 Faisons une deuxième division euclidienne :
K = M * P + r2 avec 0 ≤ r2 < M K > M2 se traduit alors par : M * P + r2 > M2
M*(M-P) < r2 < M
D’où M-P < 1 et M-P ≤ 0 soit M ≤ P On peut donc écrire :
K = M * P + r2 avec 0 ≤ r2 < 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 < 1023 et
que si n=316227766017, alors n*(n+1)= 100 000 000 000 418 727 810 306 >
1023.
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)*1011. 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.