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

Calcul scientifique Python Discussion :

Suite de Syracuse avec Python


Sujet :

Calcul scientifique Python

  1. #1
    Membre régulier
    Femme Profil pro
    Lycéen
    Inscrit en
    Octobre 2021
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 21
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2021
    Messages : 10
    Par défaut Suite de Syracuse avec Python
    Bonjour
    Je dois compléter ce programme pour qu'il trouve le terme le plus grand apparu au cours de n étapes. Cette valeur maximale doit s'appeler "hauteur de vol".

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def L(u,n):
         L= entre crochet u
         for k in range (n):
               if L entre crochet K%==0
                  L.append(L entre crochet k / 2)
               else:
                  L.append(3*L entre crochet K +1
                retourn L
    Le problème est que à cause de Covid on a pas pu faire Python. Et là le prof attend qu'on fasse un DM important.
    J'ai visualisé pleins des vidéos. Et essayé plein de fois. Mais il n'y a rien. Merci de me répondre

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    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 752
    Par défaut
    Citation Envoyé par Yassdix Voir le message
    Je dois compléter ce programme pour qu'il trouve le terme le plus grand apparu au cours de n étapes. Cette valeur maximale doit s'appeler "hauteur de vol".
    Vous créez une variable hauteur_de_vol qui sera conditionnellement mise à jour à chaque étape avec la valeur la plus grande entre la valeur stockée et la valeur courante.

    Citation Envoyé par Yassdix Voir le message
    Le problème est que à cause de covid on a pas pu faire pyton. Et là le prof attend qu'on fasse un DM important.
    Allez racontez çà au prof... ici essayez d'apprendre à programmer.

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

  3. #3
    Membre régulier
    Femme Profil pro
    Lycéen
    Inscrit en
    Octobre 2021
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 21
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2021
    Messages : 10
    Par défaut
    Bah c'est pour ça que je suis là. Je suis désolé si je vous ai offensé

    Est-ce que pour placer la variable hauteur de vol je la place en dessous de L entre parenthèse ou je dois créer un conditionnellement IF après
    ?

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    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 752
    Par défaut
    Citation Envoyé par Yassdix Voir le message
    Est-ce que pour placer la variable hauteur de vol je la place en dessous de L entre parenthèse ou je dois créer un conditionnellement IF après
    Prenez la liste d'entiers L = [ 3, 1, 5, 2 ] et essayez de trouver maximum en déroulant les différentes opérations sur une feuille de papier, histoire de vous mettre à la place de la machine.
    Vous allez commencer par initialiser max à la première valeur trouvée dans la liste.
    Puis vous allez prendre le premier item et le comparer à ce max avant de passer à l'item suivant et de recommencer.

    Une fois que vous penser avoir compris essayer de coder çà.

    Puis vous pourrez utiliser ce que vous avez appris pour coder votre exercice.

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

  5. #5
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Citation Envoyé par Yassdix Voir le message
    Le problème est que à cause de Covid on a pas pu faire Python.
    Et bien dans ce cas, vous vous prenez en main, vous installer Python sur votre ordi perso, et vous faites vos petits tests. C'est sûr que si vous attendez passivement d'avoir les ordis du bahu pour tester python, vous n'aller pas tester grand chose.

  6. #6
    Membre régulier
    Femme Profil pro
    Lycéen
    Inscrit en
    Octobre 2021
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 21
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2021
    Messages : 10
    Par défaut
    Alors je me suis mis à la place de la machine et j'ai fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    def L(u,n):
          L=entre crochet n
          hauteur_de_vol=u
          for k in range (n):
                if L entre crochet k %2==(n): 
                   L (entre crochet k/2)
                else:
                   L.append(3*L entre crochet K +1)
                if hauteur_de_vol inférieur n :
                 hauteur_de_vol=n
           return L
    Mais ça me donne pas l'hauteur de n=28 et Uo=18
    Je sais pas si changer for par while

  7. #7
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Cela veut dire quoi L entre crochet ???

  8. #8
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    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 752
    Par défaut
    Citation Envoyé par Yassdix Voir le message
    Mais ça me donne pas l'hauteur de n=28 et Uo=18
    Ça doit surtout vous donner des messages d'erreurs car ce n'est pas du Python.
    Vous devriez ouvrir votre cours ou votre tuto. préféré au chapitre qui parlent des listes et des boucles.
    Et si vous avez la flemme, chercher sur Internet "Python syracuse" vous donnerait des exemples de code.

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

  9. #9
    Membre régulier
    Femme Profil pro
    Lycéen
    Inscrit en
    Octobre 2021
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 21
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2021
    Messages : 10
    Par défaut
    On a pas du cours. C'est pour ça que je suis là et je demande. J'ai déjà regardé des vidéos sur les boucles. Mais je sais pas. Oui c'est vrai, c'est pas du python. Mais ça c'est un forum. Il est censé nous aider, se donner des conseils. Même si on sais pas trop. Et NON. ON A PAS DU COURS! Si tu veux pas m'aider, ne m'aide pas. Mais sache qu'on ne commence en sachant. C'est sûr que toi avant t'étais comme moi. Ou pire. Mais bon. Merci pour ton aide quand même

  10. #10
    Membre régulier
    Femme Profil pro
    Lycéen
    Inscrit en
    Octobre 2021
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 21
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2021
    Messages : 10
    Par défaut
    Bonjour
    Cela ça vaut dire que L=" n". Avant et après " n " il ya un parenthèse.
    L= parenthèse " n" parenthèse. C'est juste que je la touche parenthèse dans mon clavier, est cassé.

  11. #11
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Si pas de cours, il va falloir apprendre avec un tuto et cela ne se fait pas en une heure. Dans ce cas, je ne vois pas comment on peut exiger quoique ce soit de vous.
    Déjà, en Python, parenthèses et crochets jouent des rôles différents.
    Si c'est juste une solution que vous voulez (cela ne servira pas à grand-chose), il y en a en cherchant sur Internet.
    Malheureusement, le travail d'apprentissage ne peut être fait par personne d'autre que vous.

  12. #12
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    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 752
    Par défaut
    Citation Envoyé par Yassdix Voir le message
    Mais sache qu'on ne commence en sachant. C'est sûr que toi avant t'étais comme moi. Ou pire. Mais bon.
    Si vous n'avez pas de cours, ouvrez un bon tuto.
    Dans les règles qui régissent ces forums, c'est un préalable avant de demander de l'aide.

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

  13. #13
    Membre régulier
    Femme Profil pro
    Lycéen
    Inscrit en
    Octobre 2021
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 21
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2021
    Messages : 10
    Par défaut
    Marco aide moi stp. J'ai vrmt besoin d'aide. Sinon je te le demenderias pas. L= "n" se trouve entre crochet. J'ai besoin de programmer la hauteur de vol

  14. #14
    Membre Expert
    Homme Profil pro
    Enseignant
    Inscrit en
    Juin 2013
    Messages
    1 617
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 617
    Par défaut
    Tout le monde est prêt à donner un coup de main, mais il faut montrer de la bonne volonté.
    En l'état, ce n'est pas du python et il est d'usage ici de corriger les fautes ou d'aider, pas de faire le travail à la place des autres.

  15. #15
    Membre régulier
    Femme Profil pro
    Lycéen
    Inscrit en
    Octobre 2021
    Messages
    10
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 21
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Octobre 2021
    Messages : 10
    Par défaut
    Je vous demande juste un piste. Je vous demande pas de me le faire. C'est juste que je suis nul. J'ai besoin de qqn qui puisse me guider. Je demande que ça.
    Il m'est demandé de completer ce programme en teouvant la hauteur de vol. Mais je sais pas si commencer avec un autre programme en mettant def hauteur_de_vol ou finir avec lo premier programme

  16. #16
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 752
    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 752
    Par défaut
    Citation Envoyé par Yassdix Voir le message
    Je vous demande juste un piste. Je vous demande pas de me le faire. C'est juste que je suis nul. J'ai besoin de qqn qui puisse me guider. Je demande que ça.
    Je vous ai donné des pistes (calculer le maximum d'une liste). Et à part geindre, vous ne faites rien: c'est pas comme ça que vous pourrez apprendre (ouvrez un tuto!) et si vous n'avez pas le temps d'apprendre, pas la peine de demander de l'aide.

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

  17. #17
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Citation Envoyé par Yassdix Voir le message
    Je vous demande juste un piste
    En voilà une, de piste : https://www.programiz.com/python-pro...s/built-in/max

    Mais si vous ne connaissez strictement rien à Python, suivez le tuto proposé par wiztricks.

    Sinon, vous n'arriverez à rien.

  18. #18
    Membre Expert

    Homme Profil pro
    Ingénieur calcul scientifique
    Inscrit en
    Mars 2013
    Messages
    1 229
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur calcul scientifique

    Informations forums :
    Inscription : Mars 2013
    Messages : 1 229
    Par défaut
    Voici les étapes à suivre

    1) Installez python
    2) Faites vos tests dedans
    3) Essayez de comprendre les erreurs que vous donne python pour les corriger
    4) Venir ici avec votre code (celui entré dans python), et l'erreur que celui ci vous retourne, et là on peut vous aidez plus sérieusement.

    Et les étapes on les fait bien dans cet ordre. C'est à dire que l'aide première, elle est fournie par le compilateur python lui même, et que nous même pour vous aider, on va aussi exécuter votre code, et voir ce que python nous donne. Donc concrètement, si vous ne postez pas de code, on ne peut pas plus vous aider malheureusement, à moins de faire la chose à votre place.

  19. #19
    Expert confirmé
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 486
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Travail intéressant. Voir ici: https://fr.wikipedia.org/wiki/Conjecture_de_Syracuse.

    Juste un coup de pouce => je raisonne sur le 1er code fourni:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    def L(u,n):
         L= entre crochet u
         for k in range (n):
               if L entre crochet K%==0
                  L.append(L entre crochet k / 2)
               else:
                  L.append(3*L entre crochet K +1
                retourn L
    def L(u,n): => def syracuse(n)
    Il ne faut pas nommer la fonction L comme la variable L! Et un seul argument est nécessaire: n

    L= entre crochet u => L = [n]

    for k in range (n): => while L[-1]!=1
    On ne sait pas d'avance combien il faudra de boucles pour atteindre 1. Alors, il vaut mieux utilise while (= "tant que"). L[-1] renvoie le dernier élément de la liste L. Et on arrête la boucle quand le dernier élément de L est égal à 1

    if L entre crochet K%==0 => if L[-1]%2==0
    Et l'opérateur "%" suivi de 2 donne le reste de la division par 2. Et si ce reste est 0, le nombre est pair.

    L.append(L entre crochet k / 2) => L.append(L[-1]//2)
    Il vaut mieux utiliser "//" qui est la division entière et qui donne donc un nombre entier pour la suite

    L.append(3*L entre crochet K +1 => L.append(L[-1]*3+1)
    Quand on ouvre une parenthèse, il faut la fermer!

    retourn L => return L
    En plus, l'indentation est mauvaise: on ne retourne L que quand la boucle while est terminée!

    On peut calculer les paramètres demandés après avoir obtenu la liste L:

    temps de vol: => len(L)-1

    temps de vol en altitude: il faut parcourir la liste jusqu'à trouver le 1er élément < n, et garder comme résultat l'indice précédent

    altitude maximale: => valeur maxi des éléments de L, soit max(L)

    Avec tout ça, on retrouve bien les exemples donnés sur wikipedia:

    pour n=15:
    L = [15, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1]
    temps de vol: 17
    temps de vol en altitude: 10
    altitude maximale: 160

    Pour n=127:
    L = [127, 382, 191, 574, 287, 862, 431, 1294, 647, 1942, 971, 2914, 1457, 4372, 2186, 1093, 3280, 1640, 820, 410, 205, 616, 308, 154, 77, 232, 116, 58, 29, 88, 44, 22, 11, 34, 17, 52, 26, 13, 40, 20, 10, 5, 16, 8, 4, 2, 1]
    temps de vol: 46
    temps de vol en altitude: 23
    altitude maximale: 4372

    Essaie de corriger ton code avec ça. Mais j'ai l'impression d'avoir répété une partie de la doc de Python. Je suis d'accord avec mes collègues: sans apprendre par toi-même, tu n'as aucune chance!

  20. #20
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2003
    Messages
    1 603
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2003
    Messages : 1 603
    Par défaut
    Attendons de voir si le monsieur donne de ses nouvelles avant de continuer à prendre de notre temps à lui répondre.

    Il n'a plus rien dit depuis dimanche

Discussions similaires

  1. def Suite(): avec Python
    Par jdevauliat63 dans le forum Général Python
    Réponses: 2
    Dernier message: 05/03/2020, 22h56
  2. création de base mySQL avec python
    Par preacher_man dans le forum Bibliothèques tierces
    Réponses: 7
    Dernier message: 23/06/2006, 19h38
  3. cmt se connecté a oracle pour faire une requete avec python
    Par dipajero dans le forum Bibliothèques tierces
    Réponses: 6
    Dernier message: 28/12/2005, 20h22
  4. Réponses: 2
    Dernier message: 19/12/2005, 13h15
  5. Les 128 derniers bits d'un fichier en ligne avec Python ?
    Par ecocentric dans le forum Réseau/Web
    Réponses: 7
    Dernier message: 26/09/2005, 12h40

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