Suites de Syracuses

La suite de Syracuse est définie comme suit :
\(u_0\in \mathbb Z\)
Si \(u_n\) est pair \(u_{n+1}=u_{n}/2 \)
Si \(u_n\) est impair \(u_{n+1}=3 u_n+1\)
Après nombre d'essais, les seuls cycles connus sont 1 4 2 1, -1 -2 -1 et -5 -14 -7 -20 -10 -5
On pose \(T\) la fonction de récurrence de la suite de Syracuse.
On appelle temps de vol d'un entier \(a\) : $$\sigma(a)=\max \{n\in \mathbb N ~|~ |T^n(a)|<|a| \}$$


Ecrire une fonction qui calcule le temps de vol pour un premier terme de la suite de Syracuse donné.


Type fonction

Il y a deux manières de définir une fonction en python. La commande lambda et la commande def

f=lambda x:2*x
print (f(10))
print (f("plop"))

def  ma_fonction(n):
    for entier in range(n):
        print (entier)
    return (n**2)

En savoir plus »

if then else

La structure if...then...else... est la structure la plus simple de test. Un booléen est attendu après le if, s'il vaut True le code après then est exécuté. S'il vaut False, c'est le code après else qui est exécuté. En python, le then est implicite et ne doit pas être écrit.

if 1==0:
    print ("1 égal 0")
else: 
    print ("1 est différent de 0")

from random import getrandbits
if getrandbits(1)==0:
    print ("Tu as tiré pile")
else:
    print ("Tu as tiré face")

En savoir plus »

Boucle while

La commande while permet de faire des boucles qui s'arrêtent si une certaine condition est satisfaite.

n=1
while float(1)/(n**2+1)>float(1)/1590:
	n=n+1
print (n)

En savoir plus »