aboutsummaryrefslogtreecommitdiff
path: root/semestre 2/informatique/6- récursion.md
diff options
context:
space:
mode:
authorAnhgelus Morhtuuzh <anhgelus@anhgelus.world>2025-02-21 17:50:16 +0100
committerAnhgelus Morhtuuzh <anhgelus@anhgelus.world>2025-02-21 17:50:25 +0100
commit77bfb2ccd3152c1f41d43dc192ba86ca8fd0f72f (patch)
tree798ab77b1c1608ef8cc6e56f3d12778c0844b03b /semestre 2/informatique/6- récursion.md
parenta1a5447b8b040b100bad89766066ae4ba8d6d920 (diff)
Ajout de la semaine des cours du 14 au 21 février
Diffstat (limited to 'semestre 2/informatique/6- récursion.md')
-rw-r--r--semestre 2/informatique/6- récursion.md45
1 files changed, 45 insertions, 0 deletions
diff --git a/semestre 2/informatique/6- récursion.md b/semestre 2/informatique/6- récursion.md
new file mode 100644
index 0000000..7ce5af6
--- /dev/null
+++ b/semestre 2/informatique/6- récursion.md
@@ -0,0 +1,45 @@
+---
+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