On appelle suite de Syracuse une suite d’entiers naturels définie de la manière suivante :
En répétant l’opération, on obtient une suite d’entiers strictement positifs dont chacun ne dépend que de son prédécesseur.
Pour une suite de Syracuse, le premier élément est noté \(u_{0}\). On définit trois métriques :
Ces métriques sont illustrées par la figure ci dessous.
Créer un fichier
python-04-fonctions-suites-syracuse.py
.
Selon la convention de structuration des modules, ce fichier sera structuré en quatre parties :
L’objectif est d’écrire une fonction syracuse()
:
La structure est la suivante
def syracuse(n):
pass
# initialisation des variables
# tant que la suite n'est pas terminée :
# - calcul du n suivant
# - mise à jour du temps de vol (tv)
# - mise à jour du temps de vol en altitude (tva) si nécessaire
# - mise à jour de l'altitude maximale (am)
# retour de tv, tva, am
def main():
# exemple d'exécution
= 15
n = syracuse(n)
tv, tva, am print(n, tv, tva, am)
if __name__ == "__main__":
main()
Utilisez la fonction syracuse()
pour calculer les suites
pour \(n = 15\) et \(n = 127\). Vérifier que les métriques
obtenues sont conformes aux valeurs ci dessus.
Utilisez ensuite la fonction syracuse()
pour calculer
:
Python permet de retourner plusieurs valeurs simultanément. L’explication détaillée sera abordée dans le chapitre sur les tuples.
Par exemple, on peut définir une fonction qui retourne le carré et le cube d’un nombre entier :
def square_and_cube(n):
return n**2, n**3
= square_and_cube(3) x, y