A152 Comment passer d’une année à l’autre ? [*** à la main et avec l’aide de l’ordinateur]
Solutions
Solution de Daniel Collignon
Une manière empirique d’aborder cela, pourrait être de calculer 7^k pour k=0..10000.
D’après le principe de Dirichlet, deux nombres auraient en commun les 4 premiers chiffres.
En considérant le rapport du plus grand sur le plus petit, cela donnerait donc une puissance de 7 commençant par 10… ou 99…., ce qui ne permettrait de résoudre qu’une seule question : Le passage de 2005 vers 2006 si 10…
Le passage de 2006 vers 2005 si 99…
Si cela ne convenait pas, on pourrait éventuellement travailler sur les puissances de cette puissance de 7… ou bien augmenter la valeur maximale de k…
Voyons une autre méthode basée sur le développement en fraction continue.
Cherchons p et q tels que 2006*10^p <= 2005*7^q < 2007*10^p.
En passant au logarithme, nous avons log(2006/2005) <= q*log(7) - p < log(2007/2005)
* Si P est un entier différent d’une puissance de 10, alors log(P) est irrationnel
S’il existe a et b entiers tels que b>=1 et log(P) = a/b, alors cela équivaut à P^b = 10^a ce qui entraîne une contradiction P ne divisant pas une puissance de 10.
* pour tout irrationnel x, et tout 0<e<1, il existe un entier m tel que la partie fractionnaire de m*x se trouve dans l’intervalle [0 ; e[ ou [1-e ; 1[.
Soit N un entier tel que N*e > 1.
Considérons les N+1 parties fractionnaires de k*x pour k=0..N et les N intervalles [0 ; 1/N[ … [1-1/N ; 1[.
D’après le principe de Dirichlet, il existe c et d tels que les parties fractionnaires de c*x et d*x sont dans un même intervalle.
Donc la partie fractionnaire de (d-c)*x se trouve dans l’intervalle [0 ; 1/N[ ou [1-1/N ; 1[, et a fortiori dans l’intervalle [0 ; e[ ou [1-e ; 1[ étant donné le choix de N.
* pour tout irrationnel x, et pour tout 0<u<v<1, il existe un entier n tel que la partie fractionnaire de n*x se trouve dans l’intervalle [u ; v]
Tout d’abord on applique le résultat précédent à e=v-u.
Si f désigne la partie fractionnaire de m*x, alors soit :
- 0=<f<v-u : dans ce cas, v/f – u/f = (v-u)/f > 1 et il existe un entier p dans l’intervalle [u/f ; v/f], et ce p est tel que u =< p*f =< v, donc la partie fractionnaire de p*(m*x) se trouve dans l’intervalle [u ; v].
- 1-(v-u)=<f<1 : dans ce cas, ((1-u)-(1-v))/(1-f) = (v-u)/(1-f) >= 1 et il existe un entier p dans l’intervalle [(1-v)/(1-f) ; (1-u)/(1-f)], et ce p est tel que 1-v =< p*(1-f) =< 1-u, ou encore u + p-1 =< p*f =< v + p-1 donc la partie fractionnaire de p*(m*x) se trouve dans l’intervalle [u ; v].
Si nous posons u=log(2006/2005) et v=log(2007/2005), alors v-u = log(2007/2006) < 3.10^-4.
Cherchons un entier m tel que la partie fractionnaire de m*log(7) se trouve dans l’intervalle [0 ; 3.10^-4[ ou [1-3.10^-4 ; 1[
Pour cela, utilisons le développement en fraction continue de log(7) dont les réduites permettent d’exhiber des fractions réalisant les meilleures approximations de log(7).
En particulier on obtient que 510*log(7) – 431 < 5*10^-7.
Le plus petit p dans l’intervalle [u/f ; v/f] vaut 532.
Donc 532*510 = 271320 et 431*532 = 229292
Donc 2005*7^271320 = 2006,... *10^229292, soit 500612 opérations Pour l’opération inverse, c’est le même raisonnement :
2005*10^p <= 2006*7^q < 2006*10^p.
0 <= p - q*log(7) =< log(2006/2005) < 3.10^-4 On obtient que 2074774-2455069*log(7) < 3*10^-7
Donc 2006*7^2455069 = 2005,...*10^2074774, soit 4529843 opérations.
Pour obtenir ces résultats, j’ai utilisé un outil en ligne de développement en fraction continue disponible à l’adresse : http://wims.unice.fr/wims/wims.cgi?module=tool/number/contfrac.fr Le même raisonnement permet de généraliser pour P différent d’une puissance de 10.
Mais il n’est pas évident de donner une formule générale concernant le nombre d’opérations, et par ailleurs il n’y a aucune garantie de trouver le plus petit nombre d’opérations en rapport avec l’énoncé général (c’est pourquoi l’énoncé mentionnait « on est certain de »).
Autre solution
1) Passage de 2005 à 2006
Le passage est possible si l’on trouve deux entiers k et n tels que
2006*10k<2005*7n<2007*10k. En effet il se réalise en n+k opérations dont les n premières consistent à utiliser la multiplication par 7 ce qui donne un entier X. Les k suivantes
consistent à supprimer les k derniers chiffres de X afin d’obtenir 2006.
En prenant les logarithmes décimaux, la double inégalité précédente s’écrit :
log(2006/2005) + k < n.log(7) <log(2007/2006) + k ou encore [0,00021655.. + k ]/log(7) < n
< [0,00043299… + k]/log(7) ou encore 0,00025624.. < n - k/log(7) < 0,00051236… . La recherche du plus petit couple (k,n) qui satisfait l’une quelconque de ces doubles inégalités peut se faire par ordinateur et l’on obtient les plus petites valeurs possibles de k = 229 292 et de n = 271 320. On vérifie ainsi que 271319,99999986.. < n = 271320 < 273320,00025597….
Mais la recherche peut se faire aussi manuellement. On remarque tout d’abord que le rapport n/k est très proche de 1/log(7) .Or le nombre irrationnel 1/log(7) peut être défini par une fraction continue qui a une infinité de termes et dont les premiers termes déterminés par l’algorithme classique d’Euclide sont de la forme :
...
6 5 1 2 1 5 1 1 1
, ce qui s’écrit encore
[1, 5, 2, 5, 6,.…].
Il s’agit donc de trouver une fraction continue ayant un nombre fini de termes qui est une
« bonne » approximation de 1/log(7) telle que n - k/log(7) se situe à l’intérieur de l’intervalle [0,00025624… - 0,00051236..].
Cette « bonne » approximation est obtenue quand on considère la fraction continue k
n à cinq
étages : [1, 5, 2, 5, 6, p] =
p 6 1 5 1 2 1 5 1 1 1
=
371 431p
439 510p
avec p entier naturel à
déterminer. Avec un nombre plus réduit d’étages, les approximations ne sont pas assez fines.
On pose alors n = 510p + 439 et k = 431p + 371. On a d’une part 510p + 439 – (431p + 371)log(7) = 0,00051236 - ε et d’autre part 510p + 439 – (431p + 371)log(7) = 1
0,00025624..+ ε avec 2 ε1et ε2 aussi petits que possible.
En posant A = 510log(7) – 431 et B = 371 – 439log(7), on obtient la double inégalité (B + 0,00051236..)/A > p > (B + 0,00025624…)/A soit 5346p5876. La plus petite valeur possible de p est donc p=5346.
On en déduit k =2 304 497 et n = 2 726 899.
2) Passage de 2006 à 2005
On a la double inégalité 2005*10k<2006*7n<2006*10k . Avec log(2005/2006) / log(7) = - 0,00025624…., elle devient –0,00025624… < n – k/log(7) < 0. Avec la même fraction continue que celle définie précédemment, on obtient la double inégalité B/A > p > (B –
0,00025624..)/A soit 4282p4813. La plus petite valeur possible de p est alors p = 4282 qui donne k = 1 845 913 et n = 2 184 159. A noter que ce couple est également celui des plus petites valeurs de k et de n données par l’ordinateur.
3) Généralisation
Si le coefficient multiplicatif est un entier quelconque P positif et différent de 1 et d’un multiple de 10, les même formules s’appliquent car avec les logarithmes décimaux les deux membres encadrant n s’écrivent [log(B/A) + k]/log(P) n [log((B+1)/A) + k]/log(P) et comportent le terme irrationnel 1/log(P) auquel on peut associer une fraction continue qui en est une bonne approximation..
Les tableaux ci-après donnent selon la valeur du coefficient P de 2 à 19, 10 exclu, les valeurs de k et de n obtenues par ordinateur qui satisfont la double inégalité [log(B/A) + k]/log(P) n [log((B+1)/A) + k]/log(P) :
C’est avec le coefficient 7 que le passage d’une année à l’autre dans les deux sens est le plus long à effectuer.
Bien entendu, il y a des méthodes empiriques qui introduisent la suppression du dernier chiffre non pas à la fin du processus mais à des étapes intermédiaires et permettent ainsi de réaliser des chemins beaucoup plus courts pour passer de 2005 à 2006 et vice et versa.
C’est ainsi qu’avec le coefficient 7, le passage de 2005 à 2006 peut se faire en 33 opérations et ce résultat est probablement loin d’optimal :
2005*7 = 14035 1 en 1 + 4 = 5 opérations 1*7 = 343 3 3 en 3 + 2 = 5 opérations 3*73 = 1029 102 en 3 + 1 = 4 opérations 102*72 = 4998 499 en 2 + 1 = 3 opérations 499*7 = 24451 2 244 en 2 + 2= 4 opérations 244*72 = 11956 1195 en 2 + 1 = 3 opérations 1195*7 = 8365 836 en 1 + 1 = 2 opérations 836*7 = 5852 585 en 1 + 1 = 2 opérations 585*73 = 200655 2006 en 3 + 2 = 5 opérations soit au total 33 opérations.