Bonsoir, l'IPT étant mon point faible, pourriez-vous m'aider pour ces questions s'il vous plaît?
1) Ecrire une fonction suite(u_0,n) qui renvoie la liste des termes de la suite de Syracuse en partant de u0=u_0 jusqu'à un.
2) Pour u0=10 et n=20, écrire les instructions permettant de représenter graphiquement les termes de la suite u0 à u20.
Pour la 1), je sais (enfin je pense!) écrire un programme affichant les termes, mais pas la liste des termes
def syracuse(n): if n == 1:
if n % 2 == 0:
syracuse (n/2) else :
syracuse (3∗n + 1)
Ensuite je n'y arrive pas
Merci d'avance
Bonjour ,
ta fonction syracuse n'opère que si n est égal 1 . De plus , à part d'être récursive , elle ne fait pas grand chose et n'affiche rien .
Il te faut définir ce que tu veux obtenir , puis comment tu peux y arriver .
Cordialement
Je te propose la syntaxe suivante :
def syrac(u):
if u%2 == 0 : return u//2
else : return 3*u+1
def suite(u0,n):
resultat = [u0]
u = u0
for i in range(1,n) :
u = syrac(u)
resultat.append(u)
return resultat
Bonjour, autre possibilité :
def suite (u0,n):
If n==0:
return [u0]
elif u0%2==0:
return [u0]+suite(u0/2,n-1)
else:
return [u0]+suite(3*u0+1,n-1)
Vous devez être membre accéder à ce service...
Pas encore inscrit ?
1 compte par personne, multi-compte interdit !
Ou identifiez-vous :