Bonjour,
Je ne sais pas si ce forum est vraiment fait pour répondre a ces questions mais je tente quand même ^^:
J'essaye de faire une procédure me donnant le nombre d'étape nécessaire a l'Algorithme de Syracuse pour atteindre 1.
Pour le moment j'ai abandonné qu'il me donne le nombre d'etape, j'essaye juste d'obtenir "1" comme réponse (la valeur qu'il a trouvé a la fin de l'algorithme). (Je débute totalement dans ce logiciel alors mon probleme vient surement d'une non compréhension du fonctionnement des procédures).
Syracuse := proc (n)
option remember;
if n = 1 then 1
else if type((1/2)*n, integer) then Syracuse(n/2)
else Syracuse(3*n+1)
end if
end if
end proc
Sauf que quand je lance le proc avec une valeur il me renvois un nombre suivit de "Cyracuse".
Voila comment je comprend ce que j'ai écrit:
Si n=1 alors la procédure doit renvoyer 1, si n est paire alors elle renvoi la valeur de proc(n/2), si impaire celle de proc(n*3+1).
Donc au final elle ne devrait renvoyer que la valeur 1.
-----