CALCULETTE POUR LES TRÈS, TRÈS, VRAIMENT TRÈS GRANDS NOMBRES

Signaler
Messages postés
473
Date d'inscription
mercredi 7 août 2002
Statut
Membre
Dernière intervention
10 juin 2015
-
Messages postés
745
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015
-
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/22098-calculette-pour-les-tres-tres-vraiment-tres-grands-nombres

Messages postés
745
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015

ok, merci je vais tester ça... pour le temps d'exécution c pas grav', du moment que le résultat est là :)
Messages postés
73
Date d'inscription
lundi 12 avril 2004
Statut
Membre
Dernière intervention
17 septembre 2008
4
J'avais fait une fonction Puissance ( une simple boucle de la fonction Multiplication ), mais les temps de calcul étaient "inhumains" ( 2^10000 en plus d'une minute )

Public Function Puissance(X As String, Y As String, cde As Boolean, nb_chiffres As Long) As String
Puissance = ""
nb_chiffres = 0
If X <> "" And Y <> "" Then
If verify_entiers_positifs(X, Y) Then
If X = "0" Then
Puissance = "0"
Else If X "1" Or Y "0" Then
Puissance = "1"
Else
If Val(Y) > 0 And Val(Y) < 10001 Then '10001 temps de calcul inhumain ???(a determiner)
Puissance = X
Dim j
For j = 1 To Val(Y) - 1
Puissance = Multiplication(Puissance, X, 0, 0)
Next j
nb_chiffres = Len(Puissance)
Else
Puissance = "Y est trop grand, temps de calcul inhumain, trouver une autre methode"
End If
End If
End If
Else
Puissance = "Des nombres entiers positifs uniquement"
End If
End If
End Function

Pour info: Val(Y) donne un Double
et
20^55=360287970189639680000000000000000000000000000000000000000000000000000000
temps calcul < 1 sec (ouf!)

Vois le prog de DNOB700
http://www.vbfrance.com/codes/JUSTE-AUTRE-LIBRAIRIE-CALCUL-PRECISION-INFINIE_22182.aspx
plus "pro" que le mien.
Messages postés
745
Date d'inscription
mardi 25 mars 2003
Statut
Membre
Dernière intervention
14 juillet 2015

Et comment faire pour les puissances?... je n'arrive pas à obtenir un résultat "normal", c'est à chaque fois ce type de résultat... par exemple pour 20^55 on a 3,6028797018963968e+71... des sources que j'ai trouvé ici celle-ci se rapproche le plus de ce que j'aimerais obtenir omme résultat...
Messages postés
44
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
5 novembre 2007

Ton code est pas mal, mais un peu lent pour les grand nombre.

Je te conseille de remplacer les chaine de caractère par des tableau d'octet, tu verras, c'est bcp plus rapide (il faut juste des routines de conversion pour les afficher) et le code est plus simple (les retenu par exemple pour la multiplication sont plus facile etc.)
Afficher les 9 commentaires