Méthode naturelle et dichotomique

Réponses à toutes vos questions après le Bac (Fac, Prépa, etc.)
Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

Méthode naturelle et dichotomique

par Rockleader » 09 Nov 2012, 13:45

Il s'agit de déterminer le nombre de multiplication nécessaire pour calculer x^n



Alors par la méthode naturelle x^n = x*x*...*x on a donc n-1 multiplication.


Par la méthode dichotomique si j'ai bien compris on tente de réduire le nombre d'opération.

Exemple x^8 = (x*x) * x² * x^4 Le coût est donc de 3 multiplications.


Maintenant si je veux calculer x^n par la méthode dichotomique, comment on procède ?
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !



Kikoo <3 Bieber
Membre Transcendant
Messages: 3814
Enregistré le: 28 Avr 2012, 09:29

par Kikoo <3 Bieber » 09 Nov 2012, 13:51

Hello Rockleader !

Je ne sais pas ce qu'est la méthode par dichotomie mais je pense que l'algorithme d'exponentiation rapide t'intéressera :)
Cela te permet de réduire de manière logarithmique le nombre d'opérations à effectuer.

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 09 Nov 2012, 13:56

Kikoo <3 Bieber a écrit:Hello Rockleader !

Je ne sais pas ce qu'est la méthode par dichotomie mais je pense que l'algorithme d'exponentiation rapide t'intéressera :)
Cela te permet de réduire de manière logarithmique le nombre d'opérations à effectuer.



La méthode dichotomique c'est au lieu d'écrire x^8 = x*x*x*x*x*x*x*x

On écrit

x²=x*x
x^4=x²*x²
x^8 = x^4*x^4

Résultat 3 multiplication et non 7 c’est donc intéressant d'un point de vue machine.

Mais là je cherche pour n !




L'exponentiation rapide oui c'est ça.

J'aurais donc a^n = e(n*ln(a)) mais ça ne me donne pas le nombre de multiplication de a^n ça =)
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Jacky22
Membre Naturel
Messages: 31
Enregistré le: 22 Sep 2012, 11:03

par Jacky22 » 09 Nov 2012, 14:06

Salut,

Alors je pensais à ça, si n>2,
x²=x*x
x^4=x^2*x^2
x^8=x^4*x^4
...
x^(k)=x^(k/2)*x^(k/2)
x^n=x^(n-k)*x^(k) si n pair

où k est un entier du type 2^(p) où p est un entier naturel et où n est compris entre k et 2*k.
Ce qui fait 2^(k)+1 opérations.
Pour le cas impair, je te laisse voir.

Avatar de l’utilisateur
Rockleader
Habitué(e)
Messages: 2126
Enregistré le: 11 Oct 2011, 18:42

par Rockleader » 09 Nov 2012, 14:13

Salut et merci, j'ai bien suivis le raisonnement, mais je ne vois pas comment on peut dire pour autant qu'il y a 2^k +1 multiplications.
Cette histoire est entièrement vraie puisque je l'ai inventé du début à la fin !

Jacky22
Membre Naturel
Messages: 31
Enregistré le: 22 Sep 2012, 11:03

par Jacky22 » 09 Nov 2012, 14:34

Pour le nombre d'opérations, je raisonne comme ceci :
x^2 -> 1 opération
x^4 -> 2 opérations
x^8 -> 3 opérations
x^16 -> 4 opérations
...
La puissance est multipliée par 2 à chaque opération. Donc, pour x^k, on a 2^k opérations.
Après, il reste l'opération pour obtenir x^n, ce qui fait 2^k+1.

Jacky22
Membre Naturel
Messages: 31
Enregistré le: 22 Sep 2012, 11:03

par Jacky22 » 09 Nov 2012, 14:46

Heu, désolé, je me suis un peu embrouillé et j'ai fait une erreur,
Pour la k ème opération, on arrive à la puissance x^(2^k)
Pour x^P, on est donc à la ln(P)/ln(2) ème opération.

Au final, on aurait donc ln(k)/ln(2)+1 opérations.

 

Retourner vers ✯✎ Supérieur

Qui est en ligne

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