Inscription / Connexion Nouveau Sujet
Niveau première
Partager :

Python et Suite de Syracuse

Posté par
Atteom
03-11-21 à 17:37

Bonjour,
j'ai un problème avec un programme python pour un exercice sur la suite de Syracuse pour le chapitre sur les Suites. Voici mon énoncé :
"Dans cet exercice, on étudie la suite de Syracuse.
Soit (Un) la suite définie par U0=a et, pour tout entier n> 0,
Un+1=Un/2 si Un est pair
Un+1=3Un+1 si Un est impair.
Calculer les cinq premier termes de la suite Un, pour a=2 et pour a=3."
j'ai réussi cette question mais c'est le programme python qui me pose problème. On doit juste le compléter, pas le droit de modifier le programme.
La deuxième question est : "La conjecture de Syracuse, non démontrée à ce jour, dit que la suite finit toujours par atteindre la valeur 1 à un certain rang.
L'objectif est de créer un algorithme permettant de déterminer la plus petite valeur de n telle que Un=1."
Voici le programme a compléter :
def f(a)
         n=0
         u=a
         while u!=1:
                if u%2==0:
                   u=...
                else :
                   u=...
                   n=...
print(...)
Actuellement j'ai fait :

def f(a)
    n=0
    u=a
    while u!=1:
           if u%2==0:
              u=a/2
           else :
              u=3*a+1
              n=n+1
print(f(a))

On me demande ce que le code affiche pour a=5, a=10 et a=15.
Sauf que quand je remplace a par la valeur dans print, il y a un message d'erreur. Qu'elles erreurs est-je fait dans le programme et comment puis-je les régler.
Merci d'avance.

Posté par
Mateo_13
re : Python et Suite de Syracuse 03-11-21 à 17:42

Bonjour,

à la fin, c'est :

print(f(5))


Cordialement,
--
Mateo.

Posté par
Atteom
re : Python et Suite de Syracuse 03-11-21 à 17:50

Merci beaucoup cela a marché

Posté par
carpediem
re : Python et Suite de Syracuse 03-11-21 à 18:14

salut

l'instruction n = n + 1 est mal placée ...

Posté par
ZEDMAT
re : Python et Suite de Syracuse 03-11-21 à 18:25


Bonsoir,
....et bien sûr il faut mettre : après def f(a)
def f(a):
Par ailleurs
if u%2==0:
              u=a/2
           else :
              u=3*a+1
me semble ne pas convenir.

Si ton programme a fonctionné, quelle valeur a-t-il retourné ?

Posté par
ZEDMAT
re : Python et Suite de Syracuse 07-11-21 à 14:19

Humour :
Sommes sans nouvelles de Atteom
Si depuis quatre jours, il est resté planté devant son ordinateur  dans l'attente du résultat fourni par son programme python, il faudrait, si vous le connaissez, lui dire de débrancher son ordinateur car son programme tourne en boucle depuis qu'il l'a lancé.

Pas de réponse en vue....

Posté par
carpediem
re : Python et Suite de Syracuse 07-11-21 à 16:22



Vous devez être membre accéder à ce service...

Pas encore inscrit ?

1 compte par personne, multi-compte interdit !

Ou identifiez-vous :


Rester sur la page

Inscription gratuite

Fiches en rapport

parmi 1674 fiches de maths

Désolé, votre version d'Internet Explorer est plus que périmée ! Merci de le mettre à jour ou de télécharger Firefox ou Google Chrome pour utiliser le site. Votre ordinateur vous remerciera !