Coût

Discutez d'informatique ici !
MacManus
Membre Irrationnel
Messages: 1365
Enregistré le: 28 Avr 2008, 14:41

coût

par MacManus » 18 Nov 2011, 13:22

Bonjour!

J'ai une question un peu naïve...
vaut-il mieux effectuer, dans une boucle (de 1 à n par ex.) :
a/b ou bien a*c (avec c=1/b) , en termes de coût de calcul ??
je sais pas si l'on peut dire qu'une mult. ou une div. équivaut à O(1) ...? et si on suppose a,b et c des matrices, en est-il de même?

merci de me dire si vs avez une petite idée...



fesssstif
Membre Naturel
Messages: 19
Enregistré le: 28 Oct 2011, 22:22

par fesssstif » 18 Nov 2011, 13:52

salut,

Je ne suis pas expert mais je pense pouvoir apporter quelques éléments,
en premier lieu:
si tu fais a/b => une division
si tu fais a*(1/b) => une division et une multiplication ensuite

donc de là la division directe est mieux.


Après, si tu peux obtenir b ou 1/b avec le même coût (sans faire la divisions à un moment),
je dirai que dans l'absolu il me semble que la multiplication est plus rapide:
la multiplication est une opération casi immédiate, on prend les deux chiffres et on calcule chaque bit du résultat un par un.
Pour une division c'est plus compliquer, il faut procéder par itération, à chaque fois calculer le modulo et la division entière puis recommencer jusqu’à obtenir la précision voulue.

Voilà pour la théorie, en pratique ça peut aussi dépendre de ton compilateur et de ton ordinateur:
Il est possible que ton compilateur reconnaissent que ces deux expressions sont équivalentes et choisissent la meilleur (c'est une hypothèse).
Il est possible que ton processeur soit optimisé et possède un composant physique pour lui faire des divisions rapidement.

Pour conclure je dirai que à moins que ton programme occupe 90% de son temps à faire cette divisions et que le temps soit un facteur important pour ton programme, ça n'aura aucune importance.
Très souvent les programmeur font ce qui est le plus lisible et facile à comprendre pour eux.

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 6 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