Sagot :
Réponse :
Explications étape par étape :
Bonsoir
1) pour 4 on obtient : [4, 2.0, 1.0]
pour 5 on obtient : [5, 16, 8.0, 4.0, 2.0, 1.0]
2) Non cela ne permet pas d'affirmer que la propriété est vraie
3) a) u représente les différentes valeurs des termes de la suite
b) u%2 représente le reste de la division de u par 2
si le reste = 0 alors u est pair
c) on ajoute à la liste la valeur de u
d) A la fin on obtient 1
e) avec 27
Programme
def syracuse(n):
liste=[n]
u=n
while u!=1:
if u%2 == 0:
u=u/2
else:
u=(u*3)+1
liste.append(u)
return(liste)
>>> syracuse(27)
[27, 82, 41.0, 124.0, 62.0, 31.0, 94.0, 47.0, 142.0, 71.0, 214.0, 107.0, 322.0, 161.0, 484.0, 242.0, 121.0, 364.0, 182.0, 91.0, 274.0, 137.0, 412.0, 206.0,103.0, 310.0, 155.0, 466.0, 233.0, 700.0, 350.0, 175.0, 526.0, 63.0,790.0, 395.0, 1186.0, 593.0, 1780.0, 890.0, 445.0, 1336.0, 668.0, 334.0, 167.0, 502.0, 251.0, 754.0, 377.0, 1132.0, 566.0, 283.0, 850.0, 425.0, 1276.0, 638.0, 319.0, 958.0, 479.0, 1438.0, 719.0, 2158.0, 1079.0, 3238.0, 1619.0, 4858.0, 2429.0, 7288.0, 3644.0, 1822.0, 911.0, 2734.0, 1367.0, 4102.0, 2051.0, 6154.0, 3077.0, 9232.0, 4616.0, 2308.0, 1154.0, 577.0, 1732.0, 866.0, 433.0, 1300.0, 650.0, 325.0, 976.0, 488.0, 244.0, 122.0, 61.0, 184.0, 92.0, 46.0, 23.0, 70.0, 35.0, 106.0, 53.0, 160.0, 80.0, 40.0, 20.0, 10.0, 5.0, 16.0, 8.0, 4.0, 2.0, 1.0]
>>>
4) Programme complet
def syracuse(n):
U=n
liste=[n]
T=0
Z=0
while U!=1:
if U%2==0:
U=(U//2)
else:
U=(3*U+1)
liste.append(U)
T=T+1
if U>n:
Z=Z+1
Ln=len(liste)
A=max(liste)
print("Trajectoire",liste)
print("Longueur",Ln)
print("Altitude",A)
print("Temps de vol",T)
print("Temps de vol en altitude",Z-1)
Avec n = 15 on obtient
*** Console de processus distant Réinitialisée ***
>>> syracuse(15)
Trajectoire [15, 46, 23, 70, 35, 106, 53, 160, 80, 40, 20, 10, 5, 16, 8, 4, 2, 1]
Longueur 18
Altitude 160
Temps de vol 17
Temps de vol en altitude 10
>>>