Page 1 of 1

problème de test voyage 200

Unread postPosted: 28 May 2006, 19:47
by cricrinature
Bonjour, j'aimerai créer un programme qui calcule a^n en décomposant n en base 2.

exemple :

a^11
11=2^3 + 2^1 + 2^0
donc a^11=a^(2^0)*a^(2^1)*a^(2^3)
=a*a^2*a^8
on initialise p=1, q=a et i=11
(11/2 = 5 +1)
donc p=a
q=a^2
i=5
(5/2 = 2 + 1)
p=a^3
q=q^4
i = 2
(2/2=1 +0)
p=a^3
q=a^8
i=1
p=a^11



Puissance (a,n)
Func
local p,q,i
1-p
a-q
n-i
Loop
If mod(i,2)=1
p*q-p
intdiv(i,2)-i
If i=1
p*q-p
Return p
q*q-q
EndLoop
EndFunc

Il me met un message d'erreur concernant le deuxième test : le test n'a pas donné de résultat VRAI ou FAUX. Pouvez-vous m'aider?
Je vous en remercie d'avance.

Re: problème de test voyage 200

Unread postPosted: 28 May 2006, 20:18
by cricrinature
ça ne change rien du tout.
Avez-vous une autre idée?

Re: problème de test voyage 200

Unread postPosted: 29 May 2006, 22:09
by ced78fr
J'aprouve entièrement :#zen#:

Re: problème de test voyage 200

Unread postPosted: 30 May 2006, 13:18
by cricrinature
j'ai placé :

If i = 1
Return p

en premier mais ça ne marche toujours pas. Ce test pose toujours problème. Pouvez-vous m'aider?

Ou sinon pouvez-vous m'aider à créer un tableau contenant la décomposition de n en base 2

exemple : 11 = 1101

puis faire la somme des termes 2^i ou i désigne la case du tableau précédent où se trouve un 1

exemple : a^11 = a*(2^0)*a^(2^1)*a^(2^3)

Merci d'avance.