Nouvelle formule pour convertir les bases?

Discussion générale entre passionnés et amateurs de mathématiques sur des sujets mathématiques variés
Crystal Silver
Membre Naturel
Messages: 10
Enregistré le: 21 Juil 2015, 10:02

par Crystal Silver » 28 Juil 2015, 09:09

Donc ce n'est pas nouveau, bah! Au moins je me suis amusé...

Mais c'est quand même rigolo, le gain de temps, au début moi aussi j'étais surpris de voir que c'était plus rapide, mais j'ai pas essayé de comprendre (l'informatique n'est pas mon fort), peut-être que j'ai mal programmé?

Sinon j'ai utilisé les deux algorithme suivant:

Pour la méthode traditionnelle (toujours en Python):

import time
x= int(raw_input('Nombre de depart ' ))
z= int(raw_input('Base visee ' ))
debut = time.time()
b=float(x)
while f<1000000:
***a=0.
***j=0.
***while (int(b/z))!=0:
******a=a+((b/z)-int(b/z))*(10**j)*z
******j=j+1
******b=float(int(b/z))
***a=int(a+((b/z)-int(b/z))*(10**j)*z)
***f=f+1
duree = time.time() - debut
print duree
print a


Et pour ma méthode pseudo-nouvelle:

import time
from math import log10
x= int(raw_input('Nombre de depart ' ))
z= int(raw_input('Base visee ' ))
debut = time.time()
while f<1000000:
***j=0
***for k in range(1, int((log10(x))/(log10(z))+1)):
******j=j+int(x/(z**k))*(1.-(z/10.))*(10.**k)
***y=int(x+j)
***f=f+1
duree = time.time() - debut
print duree
print y

Les deux algorithme font donc un million de fois la même opération. En comparant les temps, je trouve:
4.32 secondes environ pour ma formule.
6.39 secondes environ pour la formule traditionnelle.

Et j'ai voulu tester ta formule, et j'ai eu un meilleur temps d'ailleurs (3.91 secondes environ).

L'algorithme de ta formule:

from math import log10
import time
x= int(raw_input('Nombre de depart ' ))
z= int(raw_input('Base visee ' ))
debut = time.time()
f=0
while f<1000000:
***j=0
***for k in range(0, int((log10(x))/log10(z))+1):
******j=j+((x/(z**k))-(x/(z**(k+1)))*z)*10**k
***f=f+1
duree = time.time() - debut
print duree
print j

C'est surement le fait que j'ai mal programmé qui fait en sorte que nos formules soient plus rapides (dans ce cas il faut sérieusement que j'étudie la programmation).



 

Retourner vers ⚜ Salon Mathématique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 4 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite