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)