Aller au contenu

Messages recommandés

  • Réponses 107
  • Created
  • Dernière réponse
  • E-Bahut
Posté(e)

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.

 

  • E-Bahut
Posté(e)

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.

 

 

  • E-Bahut
Posté(e)

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.

 

 

  • E-Bahut
Posté(e)
  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.

  • E-Bahut
Posté(e)

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 !

  • E-Bahut
Posté(e)

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))
 

 

Posté(e)

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))

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))

  • E-Bahut
Posté(e)

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 ?

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.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.


×
×
  • Créer...
spam filtering
spam filtering