La fonction factorielle⚓︎
Définitions et exemples⚓︎
La factorielle d'un entier \(n\) se note \(n!\) et est égale au produit des entiers de \(1\) jusqu'à \(n\).
- \(5! = 1×2×3×4×5 = 120\)
- \(4! = 1×2×3×4 = 24\)
- \(3! = 1×2×3= 6\)
- \(2! = 1×2= 2\)
- \(1! = 1\)
- \(0! = 1\), comme un produit vide.
On remarque que \(5! = 4! × 5\), et de manière générale :
\[n! = \begin{cases}1 &\text{si } n = 0\\(n-1)! × n &\text{si } n\geqslant 1\end{cases}\]
Exercice⚓︎
Solution
Dans le script : return factorielle(n - 1) * n
Quelques pistes pour message()
.
message()
ne prend aucun paramètre, il faut toutefois des parenthèses vides pour en faire une fonction.print
est une fonction Python pour afficher.for ... in ... :
est la construction pour répéter en boucle des instructions.- Le décalage (l'indentation) est indispensable pour indiquer le début et la fin d'un bloc d'instructions, pour les fonctions, comme pour les structures conditionnelles, comme pour les boucles.
- Il y a d'autres constructions que nous aborderons ensuite... Patience.
Défi
On rappelle que \(100! = 1×2×3×4×5× \dots ×98×99×100\)
En s'inspirant d'une remarque sur comparaison
- justifier que \(10^{30} \leqslant 100! < 10^{300}\), puis
- par dichotomie, trouver le meilleur encadrement par des puissances de \(10\),
- en déduire le nombre de chiffres de \(100!\).
Fonction récursive
Les fonctions récursives ne sont pas à étudier au programme, cependant elles sont parfois plus simples que les versions itératives.
On peut donc les présenter dans les cas les plus simples.