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| \}$$
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)
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")
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)