Bibm@th

Forum de mathématiques - Bibm@th.net

Bienvenue dans les forums du site BibM@th, des forums où on dit Bonjour (Bonsoir), Merci, S'il vous plaît...

Vous n'êtes pas identifié(e).

Répondre

Veuillez composer votre message et l'envoyer
Nom (obligatoire)

E-mail (obligatoire)

Message (obligatoire)

Programme anti-spam : Afin de lutter contre le spam, nous vous demandons de bien vouloir répondre à la question suivante. Après inscription sur le site, vous n'aurez plus à répondre à ces questions.

Quel est le résultat de l'opération suivante (donner le résultat en chiffres)?
vingt deux moins treize
Système anti-bot

Faites glisser le curseur de gauche à droite pour activer le bouton de confirmation.

Attention : Vous devez activer Javascript dans votre navigateur pour utiliser le système anti-bot.

Retour

Résumé de la discussion (messages les plus récents en premier)

yoshi
27-08-2024 13:53:33

Bonjour à tous,

@Ernst
Je te remercie pour ton Bravo, mais ce script n'est pas de moi : j'ai d'ailleurs mis un moment pour savoir où se cachait la fameuse récurrence dont l'auteur parlait...
C'est l’œuvre d'un certain Tyrtamos ( qui poste régulièrement sur le sous-forum Python du site developpez.net), tirée d'un ses sites persos, ici : https://python.jpvweb.com/python/mesrec … th_decimal
Il y a de quoi faire...

Ici encore :
https://python.jpvweb.com/python/mesrec … enalea_bbs
il implémente l'algorithme  Blum Blum Shub et crée des générateurs de bits, d'octets, de nombres (dont des premiers) pseudo aléatoires pour la cryptographie...

Le script Python a été traduit en Maple par une IA ? Bigre...
Quoiqu'à la radio, j'ai entendu, il y a quelques temps, qu'unr IA avait pu prendre l'initiative de modifier son code et s'ajouter des fonctionnalités supplémentaire. Depuis, j'ai une autre perception des IA...

@+

Ernst
27-08-2024 08:48:05

Bonjour,

Borassus a écrit :

Ma remarque concernait ton commentaire « # on le multiplie 32 fois par lui-même ».

Ah ok, j’avions pas percuté à quoi cela se rapportait. Je suis bien sûr d’accord avec ce que tu expliques, cela fait partie des innombrables impropriétés du langage courant, un peu comme les augmentations de 200 % pour un facteur 2 ou les « c’est pas droit » pour dire penché.

Borassus
27-08-2024 08:09:50
Ernst a écrit :

En fait ici, comme je fais $v\times v$ plusieurs fois de suite, cela revient à obtenir $v^{2}$, $v^{4}$, $v^{8}$, $v^{16}$, ..., $v^{4294967296}$ c'est pourquoi je choisis comme exposant initial une puissance de 2 (et pas 26).

Bonjour Ernst, bonjour à tous,

C'est effectivement ce que j'avais compris, d'où mon $2^{16}$ initial. (J'ai rajouté $2^{26}$ en sachant d'emblée qu'avec ce nombre on ne peut reproduire ta boucle.)

Il m'a d'ailleurs fallu un peu de temps pour la comprendre — je me suis demandé si elle calculait en fait $(v^2)^{32}$ —, mais je l'ai comprise en faisant tourner les premières itérations "à la main" :
Pour $i = 1$, $v = v \times v = v^2 = v^{2^1}$ ;
pour $i = 2$, $v = v^2 \times v^2 = v^4 = v^{2^2}$ ;
pour $i = 3$, $v = v^4 \times v^4 = v^8 = v^{2^3}$ ;
etc.


Ma remarque concernait ton commentaire « # on le multiplie 32 fois par lui-même ».
C'est une faute que je vois très souvent : le carré d'un nombre n'est pas égal à ce nombre multiplié deux fois par lui-même, mais bien à ce nombre multiplié une fois par lui-même : $v^2 = v \times v$ (il n'y a qu'une seule multiplication !).
De même, le cube d'un nombre n'est pas égal à ce nombre multiplié trois fois par lui-même, mais bien à ce nombre multiplié deux fois par lui-même : $v^3 = v \times v \times v$ (il n'y a que deux multiplications !)

Bonne, agréable et fructueuse journée à tous.

Ernst
27-08-2024 01:48:02
yoshi a écrit :

J'ignore s'il est adaptable à Maple.

Bonsoir Yoshi,

Sur ce coup j’ai demandé à un assistant AI de me traduire ça en Maple (l'échange complet ici), ça me sort le millier de décimales instantanément et termine par « Temps écoulé (affichage inclus): 0.000 s », donc moins d’un millième, bravo pour ton script.

Ce qui montre combien les outils actuels (Geogébra, Python, Maple, Wolfram, les assistants AI tout ça) sont en train d’intégrer une expertise considérable, c’est absolument fabuleux.

Ernst
26-08-2024 23:05:42
Borassus a écrit :

Toute petite rectification, si je peux me permettre : un nombre multiplié 32 fois par lui-même est égal à ce nombre élevé à la puissance... 33.  :-)
En effet, $v^2 = v \times v$ (le nombre est multiplié une fois par lui-même ; $v^3 = v \times v \times v$ (le nombre est multiplié deux fois par lui-même) ; etc.

En fait ici, comme je fais $v\times v$ plusieurs fois de suite, cela revient à obtenir $v^{2}$, $v^{4}$, $v^{8}$, $v^{16}$, ..., $v^{4294967296}$ c'est pourquoi je choisis comme exposant initial une puissance de 2 (et pas 26).

Ernst
26-08-2024 22:53:20

Hello Borassus, bonsoir tout le monde,

Borassus a écrit :

Pourquoi as-tu choisi $k = 2^{32}$, et non, par exemple $2^{16}$ ou $2^{26}$ ?

En fait je suis parti sur les calculs de Yoshi qui ne trouvait pas cela terrible au regard des résultats qu’il avait avec des méthodes de calcul de racines. Je me suis dit qu’il fallait faire mieux. Avec $2^{16}$ j’arrivais à 20 termes, le développement de ces termes dépassait une ligne, j’ai donc poussé pour obtenir le truc en 10 termes. Comme toujours avec moi, c’est un compromis et c’est arbitraire.

Ah oui, on notera que plus on augmente la puissance de 2, moins on a besoin de termes. On peut même finir avec un seul et unique terme si on adopte un exposant de… 334, vu que dans ce cas on retrouve la formule originelle avec la même valeur au dénominateur et en exposant.


L'idée de considérer le nombre $e$ comme étant $(e^{\frac 1 x})^x$ est une véritable perle !

Content que tu apprécies, j'ai trouvé cela dans ce papier de 2004 où l’auteur regroupe les termes pour converger plus vite et calcule également à partir de l’inverse (voir l'équation (14) et les paragraphes associés en bas de la cinquième page marquée 38). Je ne voulais pas regrouper – sinon c’est autre chose – mais ce qui m’a vraiment plu c’est l’idée de passer par des racines de plus en plus importantes et ensuite de restaurer avec des exposants de plus en plus grands. J’ai donc développé, sans trop optimiser pour que tout reste bien lisible.

Ernst
26-08-2024 22:38:47

Bonsoir Yoshi, bonsoir tout le monde,

Hé hé, c’est un peu grâce à toi et à tes 71 termes que j’ai essayé de faire mieux, faut bien le dire.

yoshi a écrit :

J'ai adapté ton script à Python, il ne fonctionne pas : je reprends demain...

Ok, celui-là devrait marcher, je l'ai essayé dans plusieurs moteurs Python dispo en ligne sans problème.

import decimal

decimal.getcontext().prec = 120

k = 2**32
x = k
v = decimal.Decimal(1)
f = decimal.Decimal(1)

for i in range(1, 11):
    f *= i
    v += 1 / (f * x)
    x *= k

for _ in range(32):
    v = v * v

print(f"{v:.103f}")

(je ne suis pas un spécialiste, j’ai simplement demandé à un assistant AI de me traduire le code Maple en Python)

Borassus
26-08-2024 20:56:37

Bonsoir Ernst, bonsoir Yoshi, bonsoir à tous,

Ernst, ton calcul est absolument magnifique ! L'idée de considérer le nombre $e$ comme étant $(e^{\frac 1 x})^x$ est une véritable perle !

Pourquoi as-tu choisi $k = 2^{32}$, et non, par exemple $2^{16}$ ou $2^{26}$ ?

Toute petite rectification, si je peux me permettre : un nombre multiplié 32 fois par lui-même est égal à ce nombre élevé à la puissance... 33.  :-)
En effet, $v^2 = v \times v$ (le nombre est multiplié une fois par lui-même ; $v^3 = v \times v \times v$ (le nombre est multiplié deux fois par lui-même) ; etc.

C’est là qu’on se rend compte de l’efficacité d’algorithmes spécifiques je trouve.

Oui !!
Et ce qui est porteur aussi, c'est de ne pas prendre une formule à la lettre, et de la voir autrement.


PS : Ayant une connaissance très réduite de Python, je trouve que le langage Maple est plus intuitif que le langage Python.

yoshi
26-08-2024 19:35:44

Bonjour;

J'ai adapté ton script à Python, il ne fonctionne pas : je reprends demain...
J'ai trouvé sur le net un petit script utilisant le module decimal de Python (un poil plus long que le tien) que j'ai légèrement retouché. Voilà ${e}$ avec 1000 décimales :

2.7182818284590452353602874713526624977572470936999595749669676277240766303535475945713821785251664274274663919320030599218174135966290435729003342952605956307381323286279434907632338298807531952510190115738341879307021540891499348841675092447614606680822648001684774118537423454424371075390777449920695517027618386062613313845830007520449338265602976067371132007093287091274437470472306969772093101416928368190255151086574637721112523897844250569536967707854499699679468644549059879316368892300987931277361782154249992295763514822082698951936680331825288693984964651058209392398294887933203625094431173012381970684161403970198376793206832823764648042953118023287825098194558153017567173613320698112509961818815930416903515988885193458072738667385894228792284998920868058257492796104841984443634632449684875602336248270419786232090021609902353043699418491463140934317381436405462531520961836908887070167683964243781405927145635490613031072085103837505101157477041718986106873969655212671546889570350363

Temps écoulé (affichage inclus): 0.039999961853027344 s

J'ignore s'il est adaptable à Maple.
Depuis le module decimal de Python, on importe la classe Decimal (Python sensible à la casse). Moi je l'ai importé avec un alias pour éviter de répéter le mot-clé Decimal et me contenter de D. Le typage est dit dynamique, il se fait "à la volée".
A ce que j'avais lu :
- la classe Decimal de Python définit des nombres décimaux spécifiques qui lui sont propres et ne travaille qu'avec ses propres "décimaux",
- on ne peut pas utiliser entiers et décimaux : un entier doit être converti en Decimal Python.

N-B : c'est l'indentation (décalage à droite) qui sépare les blocs...

while True:  tant que Vrai est Vrai --> boucle infinie dont on sort avec l'instruction break.
Ici compte tenu du nb de chiffres significatifs souhaités, on sort de la boucle à condition qu'il n'y ait plus de variation entre  l'ancienne valeur de s (i.e : s1) et la nouvelle qui est s.
L'auteur précise qu'il calcule la factorielle par récurrence...


from decimal import Decimal as D, getcontext
getcontext().prec=1001
from time import time

def expdec(x):    # déclaration de la fonction expdec, le paramètre x est la puissance de e souhaitée
    x=D(x)           # = --> affectation). Le paramètre x est la puissance de e souhaitée
    s1 =D(1)
    k = D(1)
    n = 0
    while True:
        n+=1          # équivalent à n=n+1
        k*= x/D(n)
        s = s1 + k
        if s==s1:     #== --> comparatif d'égalité
            break
        else:
           s1 = s
    return s

td=time()
print(expdec(1))
print ("temps écoulé (affichage inclus):", time()-td, "s")
 

@=

Ernst
26-08-2024 11:50:52
Borassus a écrit :

J'essaiera tantôt de rendre le développement en série moins hermétique...

Bonjour,

En fait le développement en série ne me dérange pas trop. On peut l’utiliser en calculant par exemple exp(1/x) qu’on élève ensuite à la puissance x, ce qui est équivalent à exp(1). L’avantage du procédé, c’est que le développement de exp(1/x) produit des dénominateurs rapidement gigantesques et permet d’obtenir les cent décimales avec seulement dix termes :

convergence

C’est là qu’on se rend compte de l’efficacité d’algorithmes spécifiques je trouve.

Borassus
25-08-2024 22:57:56

Bonsoir,

En écrivant le nombre
17.498  005.798  264.095  394.980  017.816  940.970  922.825  355.447  145.699  491.406  164.851  279.623  993.595  007.385  788  105  416  184  430  592
(il y a 96 chiffres après 17 498),

il se lit
17 mille 498 sexdécillions,
5 mille 798 quindécillions,
264 mille 095 quattuordécillions,
394 mille 980 tredécillions,
17 mille 816 duodécillions,
940 mille 970 undécillions,
922 mille 825 décillions,
355 mille 447 nonillions,
145 mille 699 octillions,
491 mille 406 septillions,
164 mille 851 sextillions,
279 mille 623 quintillions,
993 mille 595 quatrillions,
007 mille 385 trillions,
788 billiards,
105 billions,
416 milliards,
184 millions,
430 mille,
592

Pfou !! Comme disait la pub, ch'feurrais pas ça tous les jours !!

Et dire que ce fameux $n$ pour lequel il y a 100 décimales justes est quelque part entre ce nombre et son double, soit quelque 34 996 sexdécillions (et "des poussières" :-)


Bonne nuit quand même ! 
N'abusez pas de l'aspirine, c'est mauvais pour l'estomac !  :-)

Borassus
25-08-2024 12:12:27

Bonjour Bernard, et merci !

C'est bien ce qui me semblait : je suis ignare en expression de grands nombres !  :-)
(Je ne connaissais pas toutes ces désignations !)

Je vais donc essayer de traduire $2^{333}$ selon ce tableau.
Mais pas tout de suite car je compte profiter du beau temps pour faire une virée sur ma mignonne Orcal Astor vert anglais.

Si quelqu'un veut s'y coller ?  :-)

Bernard-maths
25-08-2024 12:04:23

Bonjour à tous !

Voilà pour les ignares (;-) , que j'étais juste avant :

https://www.maths-et-tiques.fr/index.ph … ds-nombres

B-m

Borassus
25-08-2024 12:02:48

Bonjour,

Pour mieux visualiser les courbes racines par rapport à la courbe $ln x$, j'ai tracé sur GeoGebra les courbes $y = \dfrac {10^{\frac x 3}}{100}$, $y = \dfrac {10^{\frac x {10}}}{100}$, $y = \dfrac {10^{\frac x {20}}}{100}$ et $y = \dfrac {10^{\frac x {100}}}{100}$ correspondant aux racines cubique, dixième, vingtième, centième.
(Apparemment GeoGebra bugue en ne traçant que partiellement la courbe $y = \dfrac {\ln {10^x}}{100}$.)

05hm.png

Je me suis demandé en quoi l'utilisation d'une échelle logarithmique sur l'axe des abscisses rend les courbes convexes alors que les courbes racines sont concaves.

Explication :
Si $f(x) = \left ( 10^x \right )^{\frac 1 n}$ ,

$f'(x) = \dfrac 1 n \left ( 10^x \right )^{\frac 1 n -1} \times \left (10^x \times \ln {10} \right )$
(dérivée de la fonction racine par rapport à $10^x$, multipliée par la dérivée de $10^x$ par rapport à $x$, la dérivée de $a^x$ étant $a^x \times \ln a$)

d'où  $f'(x)= \dfrac 1 n \left ( 10^x \right )^{\frac 1 n} \times \ln {10}$

et

$f''(x) = \dfrac 1 {n^2} \left ( 10^x \right )^{\frac 1 n -1} \times 10^x \times \ln^2 {10} = \dfrac 1 {n^2} \left ( 10^x \right )^{\frac 1 n } \times \ln^2 {10} > 0$

D'où la convexité observée des courbes.

Bon dimanche ensoleillé à tous

Borassus
24-08-2024 22:19:03

Hello Ernst,

Merci pour ces précisions, et pour ce nombre $2^{333}$ devant lequel on ne peut effectivement qu'être admiratif.

Je me suis amusé à le scinder en tranches de douze chiffres, chaque tranche étant elle-même scindée en groupes de trois chiffres :
17.498  005.798.264.095  394.980.017.816  940.970.922.825  355.447.145.699  491.406.164.851  279.623.993.595  007.385.788.105  416.184.430.592

La "lecture" de ce nombre donne
17 mille 498  de
5 milliards, 798 millions, 264 mille, 095  de
394 milliards, 980 millions, 17 mille 816  de
940 milliards, 970 millions, 922 mille, 825  de
355 milliards, 447 millions, 145 mille, 699  de
491 milliards, 406 millions, 164 mille, 851  de
279 milliards, 623 millions, 993 mille, 595  de
7 milliards, 385 millions, 788 mille, 105  de
de 416 milliards, 184 millions, 430 mille, 592

Effectivement « du fait des possibilités calculatoires actuelles, on peut manier de "grands nombres" mathématiques ne correspondant à aucune réalité physique, et pas vraiment appréhendables. »
Belle illustration !!

Bonne fin de soirée à tous, en espérant que vous n'aurez pas besoin de compter autant de moutons avant de vous endormir.  :-)

PS : J'essaiera tantôt de rendre le développement en série moins hermétique...

[Ajouté : ] PPSS : Je ne sais si ma lecture de ce nombre est conceptuellement pertinente. J'ai l'impression que non. Qu'en pensez-vous ?

Pied de page des forums