Liste de Syracuse

Contexte

Cet exercice est une extension de l’exercice Suites de Syracuse.

Environnement de travail

Pour cet exercice, vous devez utiliser en priorité le fichier squelette ex06-liste-syracuse.py. IMPORTANT : Enregistrez le avec Right Click + Save Link As... pour conserver l’encodage.

Selon la convention de structuration des modules, ce fichier sera structuré en quatre parties :

  1. Imports et définition des variables globales ;
  2. Définition des fonctions secondaires ;
  3. Définition de la fonction principale ;
  4. Appel protégé de la fonction principale.

Liste de Syracuse

Objectifs

Écrire une fonction liste_syracuse() :

Vérifier le bon fonctionnement de la fonction en effectuant un appel depuis main() et en affichant la valeur de retour (les doctests de la fonction donnent des exemples d’appel et les valeurs de retour correspondantes).

Doctests

Une fois la fonction opérationnelle pour quelques arguments, ET SEULEMENT DANS CE CAS, lancer les doctests dans un terminal:

$ python -m doctest ex06_liste_syracuse.py -v

La totalité des doctests doivent réussir.

Temps de vol

Objectifs

Écrire la fonction temps_de_vol() :

Vérifier le bon fonctionnement de la fonction en effectuant un appel depuis main() et en affichant la valeur de retour (les doctests de la fonction donnent des exemples d’appel et les valeurs de retour correspondantes).

Doctests

Une fois la fonction opérationnelle pour quelques arguments, ET SEULEMENT DANS CE CAS, lancer les doctests dans un terminal.

$ python -m doctest ex06_listesyracuse.py -v

La totalité des doctests doivent réussir.

Applications

Quel est le temps de vol des suites de Syracuse de sources n = 15 et n=127 ?

Utilisez cette fonction pour calculer la valeur maximum du temps de vol des suites de Syracuse pour n = 1 jusqu’à n = 9999.

Temps de vol en altitude

Objectifs

Écrire la fonction temps_de_vol_en_altitude() :

Vérifier le bon fonctionnement de la fonction en effectuant un appel depuis main() et en affichant la valeur de retour (les doctests de la fonction donnent des exemples d’appel et les valeurs de retour correspondantes).

Doctests

Une fois la fonction opérationnelle pour quelques arguments, ET SEULEMENT DANS CE CAS, lancer les doctests dans un terminal.

$ python -m doctest ex06_syracuse.py -v

La totalité des doctests doivent réussir.

Applications

Quel est le temps de vol en altitude des suites de Syracuse de sources n = 15 et n=127 ?

Utilisez cette fonction pour calculer la valeur maximum du temps de vol en altitude des suites de Syracuse pour n = 1 jusqu’à n = 9999.

Altitude maximale

Objectifs

Écrire la fonction altitude_maximale() :

Vérifier le bon fonctionnement de la fonction en effectuant un appel depuis main() et en affichant la valeur de retour (les doctests de la fonction donnent des exemples d’appel et les valeurs de retour correspondantes).

Doctests

Une fois la fonction opérationnelle pour quelques arguments, ET SEULEMENT DANS CE CAS, lancer les doctests dans un terminal.

$ python -m doctest ex06_syracuse.py -v

La totalité des doctests doivent réussir.

Applications

Quelle est l’altitude maximale des suites de Syracuse de sources n = 15 et n=127 ?

Utilisez cette fonction pour calculer la valeur maximum de l’altitude maximale des suites de Syracuse pour n = 1 jusqu’à n = 9999.

Tracé graphique

Pour visualiser l’évolution des suites de Syracuse, on utilise le module Plotly qui dote Python de capacités graphiques.

Le module et ses dépendances ne font pas partie du langage et doivent être installés avec pip :

$ python -m pip install pandas
$ python -m pip install plotly

Les premières lignes du fichier squelette déclarent les imports nécessaires. Les lignes d’import ne doivent pas être modifiées.

La fonction syr_plot() :

syr_plot() ne doit pas être modifiée.

Applications

Faire des appels à syr_plot() à partir de main() pour tracer quelques suites de Syracuse. En particulier pour n=15, n=27 et n=127 .

Utiliser syr_plot() pour tracer les suites de Syracuse conduisant :

Utiliser le curseur graphique pour vérifier les valeurs obtenues.