« Mathématiques avec Python et Ruby/Suites en Python » : différence entre les versions

Contenu supprimé Contenu ajouté
Ligne 68 :
 
==Suite de Collatz==
 
Algorithmiquement, la [[w:Conjecture de Syracuse|suite de Collatz]] est intéressante parce que son calcul est basé sur un test de parité, et qu'elle utilise une boucle à condition de sortie:
 
<source lang="python">
u=65
while(u>1):
if u%2:
u=3*u+1
else
u//=2
print(u)
</source>
 
La division par 2 est une division euclidienne, en effet on souhaite que ''u'' reste entier (et non flottant) au cours de la boucle.
 
==Suite de Fibonacci==
 
 
===Calcul de la suite===
 
La récurrence de la [[w:Suite de Fibonacci|suite de Fibonacci]] est double, avec <math>u_{n+1}=u_n+u_{n-1}</math>. Son calcul pose donc un problème algorithmique, puisqu'il faut trois variables (les deux termes à calculer et une variable ''tampon'' pour stocker temporairement l'un des deux termes, afin qu'il ne soit pas écrasé par la somme). Ce problème n'existe pas en ''Python'' qui permet les affectations simultanées.
 
<source lang="python">
a=1
b=1
for n in range(20):
a,b=b,a+b
print(a)
 
</source>
 
===Nombre d'Or===
 
Un problème numériquement intéressant (et c'était la motivation initiale de [[w:Fibonacci|Fibonacci]]) est d'étudier le comportement du rapport entre deux termes successifs de la suite de Fibonacci:
 
<source lang="python">
a=1
b=1
for n in range(20):
a,b=b,a+b
print(b/a)
 
print((1+5**0.5)/2)
</source>
 
On constate la convergence vers le [[w:Nombre d'or|nombre d'Or]].
 
=Suites définies par des sommes=