Bonjour, voici l'algorithme que j'ai crée en maple pour réaliser la suite de Syracuse (cf ici), où M est le seuil de calcul, pour arrêter l'ordi quand il ne trouve pas 1 assez vite, et N le nombre de départ.
Syracuse := proc(M,N)
local u,i ;
u:= N ;
i:=0 ;
while u>1 and i<= M do
if type(u,even) then
u:=u/2 ;
i:=i+1 ;
else
u:=3*u+1 ;
i:=i+1 ;
end if ;
[u, i] ;
end do ;
end proc ;
Seul problème : il ne m'affiche que les deux dernières valeurs de u et i, donc u=1 et i=l'étape à laquelle 1 est atteint, et je voudrais qu'il m'affiche toutes les valeurs intermédiaires ! Ca fait 3h que je suis dessus, toujours pas trouvé le moyen d'afficher ces satanés valeurs.
Pourriez-vous m'aider ?
Merci d'avance !
-----