Forum de mathématiques - Bibm@th.net
Vous n'êtes pas identifié(e).
- Contributions : Récentes | Sans réponse
#52 15-08-2018 10:45:27
- Wiwaxia
- Membre
- Lieu : Paris 75013
- Inscription : 21-12-2017
- Messages : 412
Re : Calcul de Tétration
@ yoshi, en réponse au message #49
C'est effectivement ce que j'ai obtenu.
La suite n'était peut-être pas très bien présentée: (b0) n'est pas défini, et pour chacun des rangs consécutifs, il faut calculer (bk), puis (ak).
La période apparaît dans les 2 premières séries de résultats (c = 1 , p = 2 ; c = 2 , p = 10).
Pour les autres, il faut poursuivre plus loin:
# c = 3 p = 52 - 2 = 50
n b a
1 1936 936
2 41184 184
3 8096 96
4 4224 224
... ... ...
49 13376 376
50 16544 544
51 23936 936
52 41184 184
# c = 4 p = 252 - 2 = 250
n b a
1 1936 1936
2 85184 5184
3 228096 8096
4 356224 6224
... ... ...
249 189376 9376
250 412544 2544
251 111936 1936
252 85184 5184
253 228096 8096
# c = 6 p = 6253 - 3 = 6250
1 1936 1936
2 85184 85184
3 3748096 748096
4 32916224 916224
5 40313856 313856
... ... ...
6249 19109376 109376
6250 4812544 812544
6251 35751936 751936
6252 33085184 85184
6253 3748096 748096
6254 32916224 916224
6255 40313856 313856
6256 13809664 809664
Dernière modification par Wiwaxia (16-08-2018 13:56:59)
Hors ligne
#54 08-09-2018 15:44:21
- bbil
- Invité
Re : Calcul de Tétration
Salut,
Bravo et merci.
Cette fois, ça tourne du 1er coup...
...@+
bonjour, je vais arriver comme un cheveux sur la soupe j'ai besoin de calculer les 52 derniers chiffres de 52^^52 ... je ne vois pas comment adapter le script (a part le remplacement des 44 par 52..)
que devient :
a=powmod(t,a,spow(5,n-j)*spow(2,n-j))
merci
#55 08-09-2018 17:33:36
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 992
Re : Calcul de Tétration
Re,
Oui, rien d'autre à faire qu'à remplacer cette ligne :
n,t,h=100,44,44
par celle-ci :
n,t,h=100,52,52
Et pour l'affichage, remplacer 44 par 52:
Les fonctions spow et powmod du script sont utilisables par ailleurs.
Une fois écrites, je me suis empressé de les tester sur de très grand nombres permettant d'obtenir les résultats "normalement" avec Python afin de pouvoir les comparer.
Pour le spow, elle ne fait que calculer $x^n$...
Pour le powmod, il calcule : [tex]base^n \mod modulo[/tex]
Exemple
595
>>> powmod(19,23,732)
595
>>>
d'après https://fr.wikipedia.org/wiki/Exponentiation_modulaire
Concernant la ligne
tu pourrais la remplacer par
Mais il se trouve qu'il est plus rapide de calculer spow(5,n-j)*spow(2,n-j) que spow(10,n-j)...
On n'y touche pas...
*************************************************
* ... TETRATION ... *
* Calcul des 52 derniers chiffres de 52^^52 *
*************************************************
Affichage des 100 derniers chiffres :
5831823324290066923024554781104826055945407673063907049794759811500241366481758566832663580047835136
Extraction des 52 derniers chiffres :
3907049794759811500241366481758566832663580047835136
Calculs exécutés en 0.019001245498657227 s
Script adapté avec 52
# -*- coding: utf8 -*-
from time import time
def spow(x,n):
e = (n - n % 2)//2
y = (x**2)**e
if n%2:
y*=x
return y
def powmod(base,n,modulo):
result=1
while n>0:
if (n & 1)>0:
result=(result*base)% modulo
n>>=1
base=(base*base)% modulo
return result
n,t,h=100,52,52
a=t
print (" *************************************************")
print (" * ... TETRATION ... *")
print (" * Calcul des",t,"derniers chiffres de "+str(t)+"^^"+str(t)+" *")
print (" *************************************************")
print ("\n\n")
debut=time()
for j in range(h-1,-1,-1):
a=powmod(t,a,spow(5,n-j)*spow(2,n-j))
Duree=time()-debut
print()
print("Affichage des",n,"derniers chiffres :\n",a)
print ("Extraction des",t,"derniers chiffres :\n",str(a)[n-52:])
print("\nCalculs exécutés en "+str(Duree),"s"):
Ça te va ?
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#56 08-09-2018 19:26:35
- bbil
- Invité
Re : Calcul de Tétration
Merci, yoshi , c'est bien ce que j'avais fait ... mais non le résultat ne passe pas la suite de l'énigme...
et donc je me disais que peut-être la simplification pour 52 n'était pas la même que pour 44..
#57 08-09-2018 20:11:49
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 992
Re : Calcul de Tétration
Salut,
Et c'est quoi la suite de l'énigme ?
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#58 08-09-2018 23:07:01
- bbil
- Invité
Re : Calcul de Tétration
bonsoir,
en fait dans la suite de l'enigme une procédure permet de vérifier le résultat obtenu..
#59 09-09-2018 08:20:49
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 992
Re : Calcul de Tétration
Re,
J'ai tout revérifié par rapport à ce que disait Dattier,
j'ai trouvé une petite erreur opératoire... qui ne change pas le résultat.
Code conforme à celui de Dattier en Maple.
Petite erreur : il faut écrire
# -*- coding: utf8 -*-
from time import time
def spow(x,n):
e = (n - n % 2)//2
y = (x**2)**e
if n%2:
y*=x
return y
def powmod(base,n,modulo):
result=1
while n>0:
if (n & 1)>0:
result=(result*base)% modulo
n>>=1
base=(base*base)% modulo
return result
n,t,h=100,52,52
a=t
print (" *************************************************")
print (" * ... TETRATION ... *")
print (" * Calcul des",t,"derniers chiffres de "+str(t)+"^^"+str(t)+" *")
print (" *************************************************")
print ("\n\n")
debut=time()
for j in range(h-1,-1,-1):
a=powmod(t,a,spow(5,n-j)*spow(2,n+j)) # ligne corrigée spow(2,n+j) au lieu de spow(n-j)
Duree=time()-debut
print()
print("Affichage des",n,"derniers chiffres :\n",a)
print ("Extraction des",t,"derniers chiffres :\n",str(a)[n-52:])
print("\nCalculs exécutés en "+str(Duree),"s"):
La vraie explication est là : page 2, post #40
Je vais donc aller déjeuner, puis :
- je reprendrai toutes les explications de Dattier,
- si je ne vois rien,je solliciterai Dattier pour comprendre...
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#60 09-09-2018 10:50:54
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 992
Re : Calcul de Tétration
Re,
J'ai repris...
Cette fois, je ne vois pas d'erreur ; je puis un peu surpris que avoir utilisé [tex]2^{n-j}[/tex] au lieu de [tex]2^{n+j}[/tex] ne change pas le résultat.
Ceci dit, l'auteur de l'énigme initiale : les 44 derniers chiffres de 44^^44, s'était trompé dans le résultat et finalement a reconnu que celui fourni par Dattier était le bon.
S'il s'agit du même auteur, pour les 52 derniers chiffres de 52^^52, peut-être s'est-il, lui de nouveau trompé ?...
Attendons...
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#61 09-09-2018 12:33:56
- bbil
- Membre
- Inscription : 09-09-2018
- Messages : 2
Re : Calcul de Tétration
Bonjour,
oui on trouve toujours le même résultat avec ce nouveau code , pour l'énigme d'autre "concurents" l'on résolu est donc on peu estimer qu'il n'y a pas d'erreur (où ils ont fait tous la même ..)
n'y as t'il pas de MP sur ce forum ?
cdt.
Hors ligne
#63 09-09-2018 12:41:57
- yoshi
- Modo Ferox
- Inscription : 20-11-2005
- Messages : 16 992
Re : Calcul de Tétration
Re,
n'y as t'il pas de MP sur ce forum ?
Non.
pour l'énigme d'autres "concurents" l'ont résolue
Diable, l'algo de Dattier serait-il faux ?...
@+
Arx Tarpeia Capitoli proxima...
Hors ligne
#65 09-09-2018 12:59:37
Re : Calcul de Tétration
Diable, l'algo de Dattier serait-il faux ?...
La seule chose dont je suis sûr c'est qu'il arrive que je me trompe.
Mais ici j'ai explicité (résultat 1 et 2) les raisons pour lesquels je pense avoir raison.
Dernière modification par Dattier (09-09-2018 13:00:20)
Raisonnement Exact : A est exacte si avec 10 exemples et pas de contre-exemples connus des concernés
Hors ligne
#67 09-09-2018 13:38:25
- bbil
- Membre
- Inscription : 09-09-2018
- Messages : 2
Re : Calcul de Tétration
Re,
entre temps grâce à ce fil de messagerie j'ai pu mieux cibler mes recherches internet ( tetration modulo..) et du coup j'ai trouvé un code python :
https://github.com/timothy-reasa/Python … uler188.py
et ce code m'a permis de valider l’énigme , ce qui est étonnant c'est que dans le résultat trouvé avec votre code il n'y as un qu'un chiffre de faux le premier 3 qui devrait être 9 :
9907049794759811500241366481758566832663580047835136
merci pour vos réponses qui m'on permis de trouver la bonne voie .. A+ pour une autre énigme peut-être ...
Hors ligne
#68 09-09-2018 14:06:59
Re : Calcul de Tétration
Désolé je bugg, et mon pc aussi, il me donne des résultats diffèrents pour un même programme.
A ce stade c'est plus des maths mais de la sorcellerie lol.
Mais cela tourne autour du résultat 1.
Dernière modification par Dattier (09-09-2018 14:08:37)
Raisonnement Exact : A est exacte si avec 10 exemples et pas de contre-exemples connus des concernés
Hors ligne
#69 09-09-2018 15:04:15
- Michel Coste
- Invité
Re : Calcul de Tétration
Ce code :
https://github.com/timothy-reasa/Python … uler188.py
fait visiblement l'erreur grossière de calculer comme si [tex] b\equiv c \pmod{n} \Rightarrow a^b\equiv a^c \pmod{n}[/tex].