Lycée Victor Hugo IPT2 2016-2017
3. Écrire le code Python de la fonction binomial3, toujours en veillant à obtenir un résultat
de type entier. Quelle est la complexité de cette fonction ?
4. Tester votre fonction sur 4
2!, 37
2!, 50
25!et 1000
2!et conclure.
III La suite de Syracuse
On a rencontré en cours la suite de Syracuse ; en voici la version «compressée» définie par la
récurrence ci-dessous (où c∈N∗est une constante d’initialisation donnée) :
a0=cet ∀n∈N, an+1 =
an
2si anest pair
3an+ 1
2si anest impair
1 Analyse de la longueur du vol
1. Écrire le code Python d’une fonction récursive vol de paramètre cqui rend la liste des
différentes valeurs de la suite de Syracuse initialisée à c(et arrêtée à 1).
On s’arrête à 1 dans la mesure où à partir de 1, on retrouve la suite [2,1,2,1,...].
Exemple de résultat attendu :
>>> vol (15) :
[15 , 23 , 35 , 53 , 80 , 40 , 20 , 10 , 5 , 8 , 4, 2 , 1]
2. Écrire le code Python de la fonction longueurDuVol de paramètre c. Elle rendra pour
résultat le plus petit indice n∈Npour lequel un= 1.
3. Écrire le code Python de la fonction volMaximal de paramètre entier nqui rend le couple
constitué de la valeur c6npour lequel on obtient le vol de longueur maximale, et de la
longueur de ce vol. Exemple de résultat attendu :
>>> vo lM aximal (1000)
(871 , 113)
4. Écrire le code Python de la fonction listeDesRecordsVolMaxi de paramètre entier nqui
rend la liste des couples (c, vol)des différents records obtenus lorsqu’on fait varier cde 1
àn. Exemple de résultat attendu :
>>> l iste DesR ecor dsVo lMax i (20)
[(1 , 0) , (2 , 1) , (3 , 5) , (6 , 6) , (7 , 11) , (9 , 13) , (18 , 14) ]
2 Analyse de l’altitude maximale atteinte
1. Écrire le code Python d’une fonction récursive maximumListe dont le paramètre est une
liste d’entiers ou de flottants let qui rend le maximum des éléments de cette liste.
2. Écrire le code Python de la fonction altitudeMax1Vol de paramètre entier cqui rend
l’altitude maximale atteinte pour un vol initialisé à c. Exemple de résultat attendu :
>>> a ltitu deMax 1Vol (9663)
13557212
3. Écrire le code Python de la fonction altitudeMaxVols de paramètre entier net qui rend
pour résultat le couple (c, alt)où cla valeur du paramètre donnant l’altitude maximale
alt atteinte parmi tous les vols obtenus en faisant varier cde 1àn..
3