IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

suite de syracuse


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2019
    Messages : 2
    Par défaut suite de syracuse
    Bonsoir, j'ai un dm de maths sur la suite de Syracuse et sur Python. Malheureusement je suis très nul sur Python, j'ai réussi à répondre aux premières questions car elles étaient simples mais pas aux suivantes
    notre programme est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    def Syracuse(u): 
      if u%2==0:
        u=u//2
      else: 
          u=3*u+1
      return u
     
    def List_Syracuse(u):
      L=[u]
      while u!=1:
        L.append(Syracuse(u))
        u=Syracuse(u)
      return L
    ma question est : Ecrire un programme qui détermine la plus petite valeur de u0 qui donne un temps de vol supérieur à 100 et quelle est l'altitude de ce vol ?
    Déterminer deux autres valeurs de u0 qui donnent la même altitude.

    Merci beaucoup pour vos réponses et si vous pouviez aussi m'expliquer comment vous avez fait pour que je comprenne, ça serait juste fabuleux !

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par rbstrk Voir le message
    ma question est : Ecrire un programme qui détermine la plus petite valeur de u0 qui donne un temps de vol supérieur à 100 et quelle est l'altitude de ce vol ?
    Déterminer deux autres valeurs de u0 qui donnent la même altitude.

    Merci beaucoup pour vos réponses et si vous pouviez aussi m'expliquer comment vous avez fait pour que je comprenne, ça serait juste fabuleux !
    La première fonction "Syracuse()" sert, en fonction du nombre reçu, à calculer le nombre suivant de la suite
    La seconde "List_Syracuse()" renvoie, pour tout nombre testé, la suite qui en découle jusqu'à 1. Le temps de vol est la longueur de cette suite et l'altitude est la valeur la plus haute trouvée dans la suite.

    Suffit donc de faire une boucle avec u0 qui commence à 1 et qui s'incrémente dans la boucle. On appelle la suite pour chaque u0 variable et dès qu'on obtient une liste de +100 éléments on mémorise ce u0 et on récupère la valeur max.
    Ensuite on refait une nouvelle boucle qui fait la même chose sauf que là on cherche 2 u0 qui donneront la même altitude (en revanche, d'après l'énoncé, il semble qu'on n'a pas besoin là d'un temps de vol de +100).
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2019
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haut Rhin (Alsace)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2019
    Messages : 2
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Bonjour

    Suffit de faire une boucle avec u0 qui commence à 0 et qui s'incrémente dans la boucle.
    Et on teste la suite sur ce u0 variable. Et dès qu'on a trouvé trois temps de vol supérieur à 100 on quitte la boucle et on affiche les u0 qui ont donné ce temps de vol.
    wow tu m'as perdu haha, tu pourrais m'écrire l'algorithme s'il te plait ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 738
    Par défaut
    Citation Envoyé par rbstrk Voir le message
    wow tu m'as perdu haha, tu pourrais m'écrire l'algorithme s'il te plait ?
    L'algorithme est ce que Svr@r a décrit en français.
    Le code qui va avec, c'est votre boulot.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  5. #5
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par rbstrk Voir le message
    wow tu m'as perdu haha
    Je suis pas certain que ce soit vraiment marrant d'être perdu à ce niveau...

    Citation Envoyé par rbstrk Voir le message
    tu pourrais m'écrire l'algorithme s'il te plait ?
    Si tu crois vraiment que ça va t'aider...
    Code python : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    u0=1
    while True:
    	L=List_Syracuse(u0)
    	if len(L) > 100: break
    	u0+=1
    # while
    temps=len(L)
    alt=max(L)
    print(u0, temps, alt)
     
    autre=[]
    u1=1
    while len(autre) < 2:
    	if u1 != u0:
    		L=List_Syracuse(u1)
    		if max(L) == alt: autre.append(u1)
    	# if
    	u1+=1
    # while
    print(autre)

    Quand les dieux veulent nous punir, ils exaucent nos prières. (Oscar Wilde)
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  6. #6
    Nouveau candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2020
    Messages : 2
    Par défaut
    Citation Envoyé par Sve@r Voir le message
    Bonjour

    La première fonction "Syracuse()" sert, en fonction du nombre reçu, à calculer le nombre suivant de la suite
    La seconde "List_Syracuse()" renvoie, pour tout nombre testé, la suite qui en découle jusqu'à 1. Le temps de vol est la longueur de cette suite et l'altitude est la valeur la plus haute trouvée dans la suite.

    Suffit donc de faire une boucle avec u0 qui commence à 1 et qui s'incrémente dans la boucle. On appelle la suite pour chaque u0 variable et dès qu'on obtient une liste de +100 éléments on mémorise ce u0 et on récupère la valeur max.
    Ensuite on refait une nouvelle boucle qui fait la même chose sauf que là on cherche 2 u0 qui donneront la même altitude (en revanche, d'après l'énoncé, il semble qu'on n'a pas besoin là d'un temps de vol de +100).
    salut on vient de commencer les algorithme au lycée et j'ai le même DM a faire, c'est juste pour savoir comment tu fait pour le mémoriser (avec la fonction break ?) et récupérais puis pour quoi tu cherche 2 u0

  7. #7
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par wxcvbnn Voir le message
    salut on vient de commencer les algorithme au lycée et j'ai le même DM a faire, c'est juste pour savoir comment tu fait pour le mémoriser (avec la fonction break ?)
    "break" n'est pas une fonction. C'est un mot clef demandant à quitter une boucle. Faudrait peut-être apprendre les bases...
    Pour mémoriser une valeur "x" dans une variable "v", on écrit bêtement v=x.

    Citation Envoyé par wxcvbnn Voir le message
    Citation Envoyé par rbstrk Voir le message
    Déterminer deux autres valeurs de u0 qui donnent la même altitude.
    et puis pour quoi tu cherche 2 u0
    Sais pas. A ton avis ???
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  8. #8
    Nouveau candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mars 2020
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Drôme (Rhône Alpes)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mars 2020
    Messages : 2
    Par défaut
    a oui okay j'ai compris merci désolé si ce n'est que les basse pour toi.

Discussions similaires

  1. [Python 3.X] Suite de syracuse et graphe
    Par swiftstell dans le forum Général Python
    Réponses: 0
    Dernier message: 29/10/2015, 12h13
  2. Suite de Syracuse
    Par Debinfo75 dans le forum Scheme
    Réponses: 5
    Dernier message: 21/07/2011, 23h02
  3. [Suite de Syracuse] Comment résoudre ce programme ?
    Par fredigston dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 04/02/2011, 09h48
  4. Suite de Syracuse
    Par Akhey dans le forum Pascal
    Réponses: 11
    Dernier message: 11/10/2009, 04h52
  5. suite de syracuse
    Par narcis60floyjo dans le forum C++
    Réponses: 23
    Dernier message: 23/11/2007, 00h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo