diff options
| author | Anhgelus Morhtuuzh <anhgelus@anhgelus.world> | 2025-03-10 10:31:33 +0100 |
|---|---|---|
| committer | Anhgelus Morhtuuzh <anhgelus@anhgelus.world> | 2025-03-10 10:31:33 +0100 |
| commit | 4a3afaf44aa29e66a6c879c60322015a2920a5ab (patch) | |
| tree | 64d3e7748078b4215341aeead3b30eaaf28070ad /semestre 2/informatique/6- récursion.md | |
| parent | 77bfb2ccd3152c1f41d43dc192ba86ca8fd0f72f (diff) | |
Ajout de la semaine des cours du 3 au 7 mars
Diffstat (limited to 'semestre 2/informatique/6- récursion.md')
| -rw-r--r-- | semestre 2/informatique/6- récursion.md | 45 |
1 files changed, 0 insertions, 45 deletions
diff --git a/semestre 2/informatique/6- récursion.md b/semestre 2/informatique/6- récursion.md deleted file mode 100644 index 7ce5af6..0000000 --- a/semestre 2/informatique/6- récursion.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -tags: - - sorbonne - - informatique -semestre: 2 ---- -Une fonction récursive est une fonction qui s'appelle elle-même, e.g. -```c -int somme(int n){ - if (n == 0) return 0; - return somme(n-1) + n; -} -``` - -Besoin d'avoir une hypothèse de récurrence quand on fait une récursion -|> besoin d'avoir une convergence, sinon la récursion est infinie - -| Indice | = | valeur | -| ---------------- | --- | ---------------------- | -| (1) somme_int(3) | = | 3+somme_int(2) | -| (2) | = | 3+(2+somme_int(1)) | -| (3) | = | 3+(2+(1+somme_int(0))) | -| (4) | = | 3+(2+(1+0)) | -| (5) | = | 6 | -La pile ressemble à la même chose que le tableau - -Si l'appel est trop vénère, alors il remplit la mémoire et provoque une erreur - -Autre exemple : -```c -int factoriel(int n){ - if (n <= 1) return 1; - return factoriel(n-1) * n; -} -``` - -La suite de Fibonacci, -$$ F_n=\left\{\begin{matrix}1&\text{si $n=0$ ou $n=1$}\\F_{n-1}+F_{n-2}&\text{sinon}\end{matrix}\right. $$ -sert à faire une dichotomie plus rapide en pratique (mais pas en théorie) -```c -int fibonacci(int n){ - if (n <= 1) return 1 - return fibonacci(n-1)+fibonacci(n-2) -} -```
\ No newline at end of file |
