E-Bahut PAVE Posté(e) le 25 février 2021 E-Bahut Signaler Posté(e) le 25 février 2021 Le 25/02/2021 à 12:41, Clemmellian a dit : Donc pourl la question 4a, je suis désolée mais je ne comprends pas en quoi ça m'aide ? Expand Que te dire de plus ? revois les définitions données dans l'énoncé : Citer
E-Bahut julesx Posté(e) le 25 février 2021 E-Bahut Signaler Posté(e) le 25 février 2021 On peut simplement ajouter que, en préambule de la question 4, on dit "On rappelle que len(L) renvoie la longueur de la liste et max(L) renvoie la plus grande valeur de la liste." Donc, dans ta console, tu écris len(Liste_Syracuse(7))-1 pour avoir le temps de vol max(Liste_Syracuse(7)) pour avoir l'altitude. Citer
Clemmellian Posté(e) le 25 février 2021 Auteur Signaler Posté(e) le 25 février 2021 Le temps de vol est de 16 et l'altitude de 52 ? Citer
E-Bahut julesx Posté(e) le 25 février 2021 E-Bahut Signaler Posté(e) le 25 février 2021 C'est ça, tu l'as obtenu comme suggéré à partir des instructions tapées dans la console ? Il ne te reste plus qu'à traiter la question 4.b (la 4.c s'en déduit par une simple instruction supplémentaire). Pour t'aider un peu, réfléchis à cette suite d'indications données en français de base * On commence à u0=1 et on calcule le temps de vol (initialisation) * Tant que le temps de vol est inférieur à 100, on augmente u0 d'une unité et on calcule le nouveau temps de vol. * La boucle précédente s’arrêtant lorsque le temps de vol est supérieur à 100, il n'y a plus qu'a afficher la valeur de u0 et l'altitude correspondante. Bien sûr, pour la transcription en Python, les instructions correspondantes s'ajouteront aux deux fonctions définies précédemment. Citer
Clemmellian Posté(e) le 25 février 2021 Auteur Signaler Posté(e) le 25 février 2021 Merci je vais essayer Citer
Clemmellian Posté(e) le 25 février 2021 Auteur Signaler Posté(e) le 25 février 2021 Oui, grâce à la console Mais il faut réecrire totalement le programme ou je garde la base de l'autre ? Citer
E-Bahut julesx Posté(e) le 25 février 2021 E-Bahut Signaler Posté(e) le 25 février 2021 Tu gardes évidemment la base de l'autre, c'est à dire les deux déf : from math import* def Syracuse(u): if u%2==0: u=u//2 else: u=3*u+1 return u def Liste_Syracuse(u): L=[u] while u!=1: L.append(Syracuse(u)) u=Syracuse(u) return L ou l'équivalent de ce que tu as écrit. Citer
Clemmellian Posté(e) le 25 février 2021 Auteur Signaler Posté(e) le 25 février 2021 Il faut utiliser while ? Citer
E-Bahut PAVE Posté(e) le 25 février 2021 E-Bahut Signaler Posté(e) le 25 février 2021 Le 25/02/2021 à 20:18, Clemmellian a dit : Il faut utiliser while ? Expand Essaye de faire et on en parlera après.... Tu peux préparer ton écriture de script en disant d'abord (écrivant) en langage courant ce que tu veux faire pour obtenir ce qui est demandé. Tant que la suite que tu "testes" n'a pas un "temps de vol" supérieur à 100, tu en testes une autre. En gros tu vas passer en revue toutes les suites jusqu'à trouver... la bonne. Citer
E-Bahut PAVE Posté(e) le 27 février 2021 E-Bahut Signaler Posté(e) le 27 février 2021 Tu as jeté l'éponge ? Citer
E-Bahut julesx Posté(e) le 27 février 2021 E-Bahut Signaler Posté(e) le 27 février 2021 Bonjour PAVE, Curieux que ton altitude s'affiche avec un ".0". Normalement, tous les éléments de la liste sont des entiers. J'espère effectivement que Clemmellian n'a pas jeté l'éponge ! Citer
Clemmellian Posté(e) le 27 février 2021 Auteur Signaler Posté(e) le 27 février 2021 J'ai un peu jeté l'éponge ahah Citer
E-Bahut julesx Posté(e) le 27 février 2021 E-Bahut Signaler Posté(e) le 27 février 2021 Et si on jouait à compléter les éléments manquants ? from math import* def Syracuse(u): if u%2==0: u=u//2 else: u=3*u+1 return u def Liste_Syracuse(u): L=[u] while u!=1: L.append(Syracuse(u)) u=Syracuse(u) return L u0=1 LS=Liste_Syracuse(u0) pour simplifier l'écriture TV=len(LS)-1 temps de vol while... u0=... LS=... TV=... print("Valeur de u0 ",u0) print("Temps de vol",TV) print('Altitude ',max(LS)) Citer
Clemmellian Posté(e) le 27 février 2021 Auteur Signaler Posté(e) le 27 février 2021 Je vais donc essayer Citer
Clemmellian Posté(e) le 27 février 2021 Auteur Signaler Posté(e) le 27 février 2021 from math import* def Syracuse(u): if u%2==0: u=u//2 else: u=3*u+1 return u def Liste_Syracuse(u): L=[u] while u!=1: L.append(Syracuse(u)) u=Syracuse(u) return L u0=1 LS=Liste_Syracuse(u0) pour simplifier l'écriture TV=len(LS)-1 temps de vol while u0 < 100 u0= LS=... TV=... print("Valeur de u0 ",u0) print("Temps de vol",TV) print('Altitude ',max(LS)) E-Bahut Posté(e) il y a 59 minutes Et si on jouait à compléter les éléments manquants ? from math import* def Syracuse(u): if u%2==0: u=u//2 else: u=3*u+1 return u def Liste_Syracuse(u): L=[u] while u!=1: L.append(Syracuse(u)) u=Syracuse(u) return L u0=1 LS=Liste_Syracuse(u0) pour simplifier l'écriture TV=len(LS)-1 temps de vol while u0<100 u0= u0 + 1 LS=... TV=... print("Valeur de u0 ",u0) print("Temps de vol",TV) print('Altitude ',max(LS)) Citer
E-Bahut julesx Posté(e) le 27 février 2021 E-Bahut Signaler Posté(e) le 27 février 2021 Non, u0 est le premier terme de la suite de Syracuse, rappel : On cherche la plus petite valeur de u0 qui donne un temps de vol supérieur à 100 Citer
Clemmellian Posté(e) le 27 février 2021 Auteur Signaler Posté(e) le 27 février 2021 ah alors je ne sais pas Citer
E-Bahut julesx Posté(e) le 27 février 2021 E-Bahut Signaler Posté(e) le 27 février 2021 Tu ne veux pas essayer un peu de réfléchir ! On veut connaitre la plus petite valeur de u0 qui donne un temps de vol supérieur à 100. Donc, quelle est la variable qu'il faut tester dans le while ? Je crois que PAVE t'avait déjà fait une remarque similaire, tu te contentes le plus souvent d'attendre qu'on te parachute une solution ou corrige un "n'importe quoi". Nous, on sait faire, mais toi, qu'est-ce que cela t'apporte ? Citer
Clemmellian Posté(e) le 27 février 2021 Auteur Signaler Posté(e) le 27 février 2021 tanr que temps de vol TS 100 Citer
E-Bahut julesx Posté(e) le 28 février 2021 E-Bahut Signaler Posté(e) le 28 février 2021 Non, c'est Tant que temps de vol TS<100 ! Citer
Clemmellian Posté(e) le 28 février 2021 Auteur Signaler Posté(e) le 28 février 2021 Merci Mais c'est TV non ? Citer
E-Bahut julesx Posté(e) le 28 février 2021 E-Bahut Signaler Posté(e) le 28 février 2021 Ah oui, faute de frappe, j'ai bêtement recopié ce que tu avais écrit : Le 27/02/2021 à 23:10, Clemmellian a dit : tanr que temps de vol TS 100 Expand Citer
Clemmellian Posté(e) le 28 février 2021 Auteur Signaler Posté(e) le 28 février 2021 Ensuite c 'est u0 + 1 Citer
E-Bahut julesx Posté(e) le 28 février 2021 E-Bahut Signaler Posté(e) le 28 février 2021 Oui, mais essaie de compléter les 3 lignes et poste l'ensemble. Citer
Messages recommandés
Rejoindre la conversation
Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.