From b15fe731c6d072abaa1e926033ebca3c2c59f81d Mon Sep 17 00:00:00 2001
From: mschiess <mathieu.schiess@posteo.ch>
Date: Tue, 8 Oct 2024 03:21:16 +0200
Subject: [PATCH] =?UTF-8?q?ajout=20d'une=20partie=202=20sur=20la=20r=C3=A9?=
 =?UTF-8?q?cursivit=C3=A9?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 recursivite/images/triangle_de_sierpinski.png | Bin 0 -> 92340 bytes
 recursivite/recursivite2.ipynb                |   1 +
 recursivite/recursivite2_corrige.ipynb        |   1 +
 recursivite/recursivite_corrige.ipynb         |   2 +-
 4 files changed, 3 insertions(+), 1 deletion(-)
 create mode 100644 recursivite/images/triangle_de_sierpinski.png
 create mode 100644 recursivite/recursivite2.ipynb
 create mode 100644 recursivite/recursivite2_corrige.ipynb

diff --git a/recursivite/images/triangle_de_sierpinski.png b/recursivite/images/triangle_de_sierpinski.png
new file mode 100644
index 0000000000000000000000000000000000000000..ec8cd8afeb22b6726348fb34422919b2f7eea3ef
GIT binary patch
literal 92340
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

literal 0
HcmV?d00001

diff --git a/recursivite/recursivite2.ipynb b/recursivite/recursivite2.ipynb
new file mode 100644
index 0000000..d2ca17a
--- /dev/null
+++ b/recursivite/recursivite2.ipynb
@@ -0,0 +1 @@
+{"cells":[{"metadata":{},"cell_type":"markdown","source":"<h1 class=\"alert alert-success\">Complément sur la récursivité en programmation</h2>"},{"metadata":{},"cell_type":"markdown","source":"## <h2 class=\"alert alert-info\"> 1. Introduction à la récursivité</h2>\nUn algorithme récursif est un algorithme qui résout un problème en calculant des solutions d'instances plus petites du même problème. "},{"metadata":{},"cell_type":"markdown","source":"<h2 class=\"alert alert-success\"> Rappel : Algorithme pour implémenter une fonction récursive</h2>\n\n- Etape 1 - Définir le cas de base : Identifier le cas le plus simple pour lequel une solution est connue.\n\n- Etape 2 - Définir la récursion : Définir le problème en termes de plus petits sous-problèmes et appeler la fonction pour les résoudre.\n\n- Etape 3 - Définir la fin : S'assurer que la récursion va bien arriver au cas de base pour éviter d'avoir une boucle infinie."},{"metadata":{},"cell_type":"markdown","source":"<h2 class = \"alert alert-success\"> Structure d'un code récursif en python :</h2>"},{"metadata":{},"cell_type":"raw","source":"def fonction(n, ...):\n    if n==0 :\n        # code pour le cas de base\n    else :\n        # votre code où apparaîtra fonction(n-1,...)"},{"metadata":{},"cell_type":"markdown","source":"### <h2 class=\"alert alert-info\">2. Fractales : courbe de Koch Correction</h2>\n\nLa courbe de Koch est une fractale reposant sur la construction récursive suviante :\n1. Étape 1 : Tracer un segment de longueur a. \n\n![Image de losange](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/koch_0.png)\n\n2. Étape 2 : Diviser le segment en 3 parties de même longueur. Construire un triangle équilatéral ayant pour base le segment médian de la première étape, et en supprimer la base.\n![Image de losange](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/koch_1.png)\n\n3. Étape 3 : Reprendre l'étape 2 sur chacun des segments créés.\n![Image de losange](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/koch_2.png)\n\n4. Et ainsi de suite...\n![Image de losange](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/koch_3.png)"},{"metadata":{},"cell_type":"markdown","source":"On peut construire récursivement cette courbe. \n\nLa fonction de tracer prend deux paramètres en entrée :\n* la longeur $a$ du segment.\n* l'étape $n$ de \"profondeur\" de récursivité. \n\nPar exemple, à la profondeur $n=0$, on trace un simple segment : ceci constituera le cas de base et la condition d'arrêt des appels récursifs. À la profondeur $n=1$, le tracé donne la figure de l'étape 2."},{"metadata":{},"cell_type":"markdown","source":"<h2 class=\"alert alert-warning\">Courbe de Koch : fonction récursive.</h2>\n\nEn vous inspirant de la logique du code de la fonction précédente (en la \"rendant récursive\"), écrire une fonction koch(a, n) récursive qui :\n\n- prend comme paramètres un nombre entier a représentant la longueur du segment et un entier n égal au nombre de récursions souhaité.\n- construit la courbe de Koch en divisant récursivement chacun des segments\n\n*Rappel* : si n=0, le tracé est un simplement segment de longueur a."},{"metadata":{},"cell_type":"markdown","source":"<div class = \"alert alert-block alert-success\"> \n\n### Solution\n</div>"},{"metadata":{"trusted":true},"cell_type":"code","source":"import turtle as tt # import du module turtle\n\ntt.speed(10)\ntt.penup()\ntt.setposition(-300, 0) \ntt.pendown()\n\ndef koch(a, n):\n    if n == 0:\n        tt.forward(a)\n    else:\n        koch(a/3, n-1)\n        tt.left(60)\n        koch(a/3, n-1)\n        tt.right(120)\n        koch(a/3, n-1)\n        tt.left(60)\n        koch(a/3, n-1)\n\nkoch(360, 3)\n\ntt.done()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h2 class=\"alert alert-warning\">Flocon de Koch : fonction récursive</h2>\n\n\nPour obtenir le flocon de Koch:\n\n<figure> \n    <img title='Koch snowflake' \n         src=\"https://isquared.digital/assets/images/koch_snowflake.png\"\n         width='600px' >\n    <figcaption>Etapes 0, 1, 2, 3 et 4</figcaption>\n</figure>\n\nIl suffit d'écrire une fonction `floconkoch(a,n)` qui va itérer  `koch(a,n)` avec la bonne rotation."},{"metadata":{"trusted":true},"cell_type":"code","source":"a = 180\n\ntt.speed(10)\ntt.penup()\ntt.setposition(-a/2, a/3) \ntt.pendown()\n\n\ndef floconkoch(a, n):\n    for i in range(3):\n        koch(a, n)\n        tt.right(120)\n\n# test pour afficher l'étape 3\nflocon(a, 3)\n\ntt.penup()\ntt.home()\n\ntt.done()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### <h2 class=\"alert alert-info\">2. Fractales de Koch et perimètres </h2>\n\n1. Complétez ce code récursif pour donner le perimètre du Flocon de Koch à l'étape n.\n\n*Aidez vous de la figure ci-dessous pour comprendre l'évolution de l'aire entre deux itérations*\n![Image du triangle de sierpinski](http://img.over-blog-kiwi.com/1/93/65/56/20160116/ob_804ca5_flcon-iteration.png)"},{"metadata":{"trusted":true},"cell_type":"code","source":"def perimetreKoch(a,n):\n    if n==0 :\n        # code pour le cas de base \n        \n    else :\n        # votre code où apparaîtra fonction(n-1,...)\n        \n\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# test pour a=50, n=3\nperimetreKoch(50,3)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# test pour a=50, n=100\nperimetreKoch(50,100)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Question:** Que peut-on déduire du périmètre du Flocon de Koch (lorsque n tend vers l'infini) ?\n\n**Réponse:** "},{"metadata":{},"cell_type":"raw","source":""},{"metadata":{},"cell_type":"markdown","source":"Pour calculer l'aire il est plus facile d'utiliser une boucle avec des variables qui comptes le nombres de triangles qu'on rajoute à chaque étape et la largeur de leur base.\n\n2. Complétez le code de la fonction pour donner l'aire du Flocon de Koch à l'étape n."},{"metadata":{"trusted":true},"cell_type":"code","source":"def aireKoch(a,n):\n    A = ...\n    l = ...\n    c = ... # le nombre de carré\n    for i in range(n):\n        A = ...\n        l = ...\n        c = ...\n        \n    return A","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# test pour a=50, n=3\naireKoch(50,3)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# test pour a=50, n=100\naireKoch(50,100)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Question:**  Que peut-on déduire de l'aire du Flocon de Koch (lorsque n tend vers l'infini) ?\n\n**Réponse:** "},{"metadata":{"trusted":true},"cell_type":"raw","source":""},{"metadata":{},"cell_type":"markdown","source":"### <h2 class=\"alert alert-info\">3. une autre images fractale: le triangle de Sierpinski</h2>\n\nLa courbe de Koch est une fractale reposant sur la construction récursive suviante :\n\n![Image du triangle de sierpinski](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/images/triangle_de_sierpinski.png)\n\n1. Écrire une fonction `triangle(a)` qui permet de dessiner un triangle de longeur `a`, puis une fonction `etape2(a)` qui permet de dessiner (pas de récursivité ici) la figure correspondant à l'étape 2 en utilisant la fonction `triangle(a)`.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"import turtle as tt\n\ndef triangle(a):\n    ...\n\ndef etape2(a) :\n    ...\n\n\netape2(200)\ntt.done()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. En vous inspirant de la logique du code de la fonction précédente (en la \"rendant récursive\"), écrire une fonction `triangle_sierpinski(a, n)` récursive qui :\n\n    - remplace les appels à triangle par des appels récursifs pour n>=1\n    - trace un simple triangle lorsque n=0\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"import turtle as tt\n\n\ndef triangle_sierpinski(a, n) :\n    ...\n    \n\ntt.hideturtle()  # on cache la tortue\ntt.speed(0) # tortue rapide\n\ntriangle_sierpinski( 200 , 7)\ntt.done()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### <h2 class=\"alert alert-info\">4. Décomposition d'un entier positif en somme d'au plus quatre carrés</h2>\n\nLe théorème des quatre carrés de Lagrange affirme que tout nombre entier positif `n` peut s'écrire comme la somme d'au plus quatre carrés.\n\nPar exemple, $1871 = 1 + 25 + 81 + 1764 = 1^2 + 5^2 + 9^2 + 42^2$.\n\nPour afficher une possibilité on peut donner l'algorithme suivant qui permet de décomposer un entier positif `n` en une somme d'au plus quatre carrés.\n"},{"metadata":{},"cell_type":"markdown","source":"<div style='background-color: #f7bd83;\n    border-radius: 0.5em;\n    padding: 1em;\n    margin: 0em 2em 0em 2em'>\n\n<p><b>Algorithme de décomposition de l'entier positif <code>n</code> en une somme d'au plus quatre carrés</b></p>\n<p><b>Début</b></p>\n<p STYLE=\"padding:0 0 0 40px;\">Si <code>n</code> est le carré d'un entier alors</p>\n<p STYLE=\"padding:0 0 0 80px;\">Retourner un tableau contenant uniquement l'élément <code>n</code></p>\n    <p STYLE=\"padding:0 0 0 40px;\">Sinon</p>\n    <p STYLE=\"padding:0 0 0 80px;\"><code>liste_carres</code> ← tableau contenant la liste décroissante des nombres compris entre 1 et <code>n</code> qui sont des carrés d'entiers</p>\n<p STYLE=\"padding:0 0 0 80px;\">Pour chaque élément <code>carre</code> de <code>liste_carres</code> faire</p>\n<p STYLE=\"padding:0 0 0 120px;\"><code>decompo</code> ← liste renvoyé par <code>decomposition_carres(n - carre)</code> auquel on ajoute l'élément <code>carre</code> à la fin</p>\n<p STYLE=\"padding:0 0 0 120px;\">Si longueur(<code>decompo</code>) $\\leq$ 4 alors</p>\n<p STYLE=\"padding:0 0 0 160px;\">Retourner <code>decompo</code></p>\n    <p><b>Fin</b></p>\n        \n</div>"},{"metadata":{},"cell_type":"markdown","source":"**(1)** 💻 Définir une fonction `est_carre` qui prend en paramètre d'entrée un entier positif `n` et qui renvoie `True` si `n` est le carré d'un entier et `False` sinon."},{"metadata":{"trusted":true},"cell_type":"code","source":"def est_carre(n):\n    if ...:\n        return ...\n    else:\n        return ...","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Test\nnb = 9\nprint(nb, \"est-il un carre ? \", est_carre(nb))\nnb = 10\nprint(nb, \"est-il un carre ? \", est_carre(nb))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**(2)** 💻 Définir une fonction `liste_carres_entiers` qui prend en paramètre d'entrée un entier positif `n` et qui renvoie la liste décroissante des entiers compris entre 1 et `n` et qui sont des carrés d'entiers."},{"metadata":{"trusted":true},"cell_type":"code","source":"def liste_carres_entiers(n):\n    L = ...\n    for k in reversed(...):\n        if ...:\n            ...\n    return L","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Test\nlistes_carres = liste_carres_entiers(100)\nprint(listes_carres) # doit afficher [100, 81, 64, 49, 36, 25, 16, 9, 4, 1]","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**(3)** 💻 Implémenter la fonction `decomposition_carres` qui prend en paramètre d'entrée un entier positif `n` et qui renvoie, sous forme de tableau de longueur inférieure ou égale à 4, une décomposition de `n` en somme de carrés d'entiers."},{"metadata":{"trusted":true},"cell_type":"code","source":"def decomposition_carres(n):\n    ...","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Test\nnb = 1871\nprint(\"La décomposition de \",nb, \"est : \", decomposition_carres(nb))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**(4)** ✏️ Donner une décomposition en somme d'au plus quatre carrés pour les entiers $300$, $1789$, $2021$ et $12345$."},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**(5)** ✏️ Proposer une fonction non récursive `decomposition_carres2(n)` qui permet de calculer la décomposition et tester la fonction"},{"metadata":{"trusted":true},"cell_type":"code","source":"def decomposition_carres2(n):\n    listes_carres = ...\n    for ...:\n        for ...:\n            for ...:\n                for ...:\n                    if ... :\n                        return ...","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Test\nnb = 1871\nprint(\"La décomposition de \",nb, \"est : \", decomposition_carres2(nb))","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3.8.1 64-bit ('python38': conda)","language":"python","name":"python38164bitpython38conda56991d5ad1414e06a4dcd344400cf456"}},"nbformat":4,"nbformat_minor":2}
\ No newline at end of file
diff --git a/recursivite/recursivite2_corrige.ipynb b/recursivite/recursivite2_corrige.ipynb
new file mode 100644
index 0000000..1f9067c
--- /dev/null
+++ b/recursivite/recursivite2_corrige.ipynb
@@ -0,0 +1 @@
+{"cells":[{"metadata":{},"cell_type":"markdown","source":"<h1 class=\"alert alert-success\">Complément sur la récursivité en programmation</h2>"},{"metadata":{},"cell_type":"markdown","source":"## <h2 class=\"alert alert-info\"> 1. Introduction à la récursivité</h2>\nUn algorithme récursif est un algorithme qui résout un problème en calculant des solutions d'instances plus petites du même problème. "},{"metadata":{},"cell_type":"markdown","source":"<h2 class=\"alert alert-success\"> Rappel : Algorithme pour implémenter une fonction récursive</h2>\n\n- Etape 1 - Définir le cas de base : Identifier le cas le plus simple pour lequel une solution est connue.\n\n- Etape 2 - Définir la récursion : Définir le problème en termes de plus petits sous-problèmes et appeler la fonction pour les résoudre.\n\n- Etape 3 - Définir la fin : S'assurer que la récursion va bien arriver au cas de base pour éviter d'avoir une boucle infinie."},{"metadata":{},"cell_type":"markdown","source":"<h2 class = \"alert alert-success\"> Structure d'un code récursif en python :</h2>"},{"metadata":{},"cell_type":"raw","source":"def fonction(n, ...):\n    if n==0 :\n        # code pour le cas de base\n    else :\n        # votre code où apparaîtra fonction(n-1,...)"},{"metadata":{},"cell_type":"markdown","source":"### <h2 class=\"alert alert-info\">2. Fractales : courbe de Koch Correction</h2>\n\nLa courbe de Koch est une fractale reposant sur la construction récursive suviante :\n1. Étape 1 : Tracer un segment de longueur a. \n\n![Image de losange](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/koch_0.png)\n\n2. Étape 2 : Diviser le segment en 3 parties de même longueur. Construire un triangle équilatéral ayant pour base le segment médian de la première étape, et en supprimer la base.\n![Image de losange](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/koch_1.png)\n\n3. Étape 3 : Reprendre l'étape 2 sur chacun des segments créés.\n![Image de losange](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/koch_2.png)\n\n4. Et ainsi de suite...\n![Image de losange](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/koch_3.png)"},{"metadata":{},"cell_type":"markdown","source":"On peut construire récursivement cette courbe. \n\nLa fonction de tracer prend deux paramètres en entrée :\n* la longeur $a$ du segment.\n* l'étape $n$ de \"profondeur\" de récursivité. \n\nPar exemple, à la profondeur $n=0$, on trace un simple segment : ceci constituera le cas de base et la condition d'arrêt des appels récursifs. À la profondeur $n=1$, le tracé donne la figure de l'étape 2."},{"metadata":{},"cell_type":"markdown","source":"<h2 class=\"alert alert-warning\">Courbe de Koch : fonction récursive.</h2>\n\nEn vous inspirant de la logique du code de la fonction précédente (en la \"rendant récursive\"), écrire une fonction koch(a, n) récursive qui :\n\n- prend comme paramètres un nombre entier a représentant la longueur du segment et un entier n égal au nombre de récursions souhaité.\n- construit la courbe de Koch en divisant récursivement chacun des segments\n\n*Rappel* : si n=0, le tracé est un simplement segment de longueur a."},{"metadata":{},"cell_type":"markdown","source":"<div class = \"alert alert-block alert-success\"> \n\n### Solution\n</div>"},{"metadata":{"trusted":true},"cell_type":"code","source":"import turtle as tt # import du module turtle\n\ntt.speed(10)\ntt.penup()\ntt.setposition(-300, 0) \ntt.pendown()\n\ndef koch(a, n):\n    if n == 0:\n        tt.forward(a)\n    else:\n        koch(a/3, n-1)\n        tt.left(60)\n        koch(a/3, n-1)\n        tt.right(120)\n        koch(a/3, n-1)\n        tt.left(60)\n        koch(a/3, n-1)\n\nkoch(360, 3)\n\ntt.done()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h2 class=\"alert alert-warning\">Flocon de Koch : fonction récursive</h2>\n\n\nPour obtenir le flocon de Koch:\n\n<figure> \n    <img title='Koch snowflake' \n         src=\"https://isquared.digital/assets/images/koch_snowflake.png\"\n         width='600px' >\n    <figcaption>Etapes 0, 1, 2, 3 et 4</figcaption>\n</figure>\n\nIl suffit d'écrire une fonction `floconkoch(a,n)` qui va itérer  `koch(a,n)` avec la bonne rotation."},{"metadata":{"trusted":true},"cell_type":"code","source":"a = 180\n\ntt.speed(10)\ntt.penup()\ntt.setposition(-a/2, a/3) \ntt.pendown()\n\n\ndef floconkoch(a, n):\n    for i in range(3):\n        koch(a, n)\n        tt.right(120)\n\n# test pour afficher l'étape 3\nflocon(a, 3)\n\ntt.penup()\ntt.home()\n\ntt.done()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### <h2 class=\"alert alert-info\">2. Fractales de Koch et perimètres </h2>\n\n1. Complétez ce code récursif pour donner le perimètre du Flocon de Koch à l'étape n.\n\n*Aidez vous de la figure ci-dessous pour comprendre l'évolution de l'aire entre deux itérations*\n![Image du triangle de sierpinski](http://img.over-blog-kiwi.com/1/93/65/56/20160116/ob_804ca5_flcon-iteration.png)"},{"metadata":{"trusted":true},"cell_type":"code","source":"def perimetreKoch(a,n):\n    if n==0 :\n        # code pour le cas de base \n        return 3*a\n    else :\n        # votre code où apparaîtra fonction(n-1,...)\n        return (4/3)*perimetreKoch(a,n-1)\n\n","execution_count":51,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# test pour a=50, n=3\nperimetreKoch(50,3)","execution_count":52,"outputs":[{"output_type":"execute_result","execution_count":52,"data":{"text/plain":"355.5555555555555"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"# test pour a=50, n=100\nperimetreKoch(50,100)","execution_count":53,"outputs":[{"output_type":"execute_result","execution_count":53,"data":{"text/plain":"467697361531188.8"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"**Question:** Que peut-on déduire du périmètre du Flocon de Koch (lorsque n tend vers l'infini) ?\n\n**Réponse:** "},{"metadata":{},"cell_type":"raw","source":""},{"metadata":{},"cell_type":"markdown","source":"Pour calculer l'aire il est plus facile d'utiliser une boucle avec des variables qui comptes le nombres de triangles qu'on rajoute à chaque étape et la largeur de leur base.\n\n2. Complétez le code de la fonction pour donner l'aire du Flocon de Koch à l'étape n."},{"metadata":{"trusted":true},"cell_type":"code","source":"def aireKoch(a,n):\n    A = (3**0.5 / 4 * a**2)\n    l = a / 3\n    c = 3 # le nombre de carré\n    for i in range(n):\n        A = A + c * (3**0.5 / 4 * l**2)\n        l = l / 3\n        c = c * 3\n        \n    return A","execution_count":55,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# test pour a=50, n=3\naireKoch(50,3)","execution_count":56,"outputs":[{"output_type":"execute_result","execution_count":56,"data":{"text/plain":"1603.7507477489605"},"metadata":{}}]},{"metadata":{"trusted":true},"cell_type":"code","source":"# test pour a=50, n=100\naireKoch(50,100)","execution_count":57,"outputs":[{"output_type":"execute_result","execution_count":57,"data":{"text/plain":"1623.7976320958232"},"metadata":{}}]},{"metadata":{},"cell_type":"markdown","source":"**Question:**  Que peut-on déduire de l'aire du Flocon de Koch (lorsque n tend vers l'infini) ?\n\n**Réponse:** "},{"metadata":{"trusted":true},"cell_type":"raw","source":""},{"metadata":{},"cell_type":"markdown","source":"### <h2 class=\"alert alert-info\">3. une autre images fractale: le triangle de Sierpinski</h2>\n\nLa courbe de Koch est une fractale reposant sur la construction récursive suviante :\n\n![Image du triangle de sierpinski](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/images/triangle_de_sierpinski.png)\n\n1. Écrire une fonction `triangle(a)` qui permet de dessiner un triangle de longeur `a`, puis une fonction `etape2(a)` qui permet de dessiner (pas de récursivité ici) la figure correspondant à l'étape 2 en utilisant la fonction `triangle(a)`.\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"import turtle as tt\n\ndef triangle(a):\n    for _ in range(3) :\n        tt.forward(a)\n        tt.left(120)\n\ndef etape2(a) :\n    for _ in range(3) :\n        triangle(a/2)\n        tt.forward(a)\n        tt.left(120)\n\n\netape2(200)\ntt.done()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. En vous inspirant de la logique du code de la fonction précédente (en la \"rendant récursive\"), écrire une fonction `triangle_sierpinski(a, n)` récursive qui :\n\n    - remplace les appels à triangle par des appels récursifs pour n>=1\n    - trace un simple triangle lorsque n=0\n"},{"metadata":{"trusted":true},"cell_type":"code","source":"import turtle as tt\n\n\ndef triangle_sierpinski(a, n) :\n    if n > 0 :\n        for _ in range(3) :\n            triangle_sierpinski(a/2, n-1)\n            tt.forward(a)\n            tt.left(120)\n\ntt.hideturtle()  # on cache la tortue\ntt.speed(0) # tortue rapide\n\ntriangle_sierpinski( 200 , 7)\ntt.done()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"### <h2 class=\"alert alert-info\">4. Décomposition d'un entier positif en somme d'au plus quatre carrés</h2>\n\nLe théorème des quatre carrés de Lagrange affirme que tout nombre entier positif `n` peut s'écrire comme la somme d'au plus quatre carrés.\n\nPar exemple, $1871 = 1 + 25 + 81 + 1764 = 1^2 + 5^2 + 9^2 + 42^2$.\n\nPour afficher une possibilité on peut donner l'algorithme suivant qui permet de décomposer un entier positif `n` en une somme d'au plus quatre carrés.\n"},{"metadata":{},"cell_type":"markdown","source":"<div style='background-color: #f7bd83;\n    border-radius: 0.5em;\n    padding: 1em;\n    margin: 0em 2em 0em 2em'>\n\n<p><b>Algorithme de décomposition de l'entier positif <code>n</code> en une somme d'au plus quatre carrés</b></p>\n<p><b>Début</b></p>\n<p STYLE=\"padding:0 0 0 40px;\">Si <code>n</code> est le carré d'un entier alors</p>\n<p STYLE=\"padding:0 0 0 80px;\">Retourner un tableau contenant uniquement l'élément <code>n</code></p>\n    <p STYLE=\"padding:0 0 0 40px;\">Sinon</p>\n    <p STYLE=\"padding:0 0 0 80px;\"><code>liste_carres</code> ← tableau contenant la liste décroissante des nombres compris entre 1 et <code>n</code> qui sont des carrés d'entiers</p>\n<p STYLE=\"padding:0 0 0 80px;\">Pour chaque élément <code>carre</code> de <code>liste_carres</code> faire</p>\n<p STYLE=\"padding:0 0 0 120px;\"><code>decompo</code> ← liste renvoyé par <code>decomposition_carres(n - carre)</code> auquel on ajoute l'élément <code>carre</code> à la fin</p>\n<p STYLE=\"padding:0 0 0 120px;\">Si longueur(<code>decompo</code>) $\\leq$ 4 alors</p>\n<p STYLE=\"padding:0 0 0 160px;\">Retourner <code>decompo</code></p>\n    <p><b>Fin</b></p>\n        \n</div>"},{"metadata":{},"cell_type":"markdown","source":"**(1)** 💻 Définir une fonction `est_carre` qui prend en paramètre d'entrée un entier positif `n` et qui renvoie `True` si `n` est le carré d'un entier et `False` sinon."},{"metadata":{"trusted":true},"cell_type":"code","source":"def est_carre(n):\n    if round(n**0.5)**2 == n:\n        return True\n    else:\n        return False","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Test\nnb = 9\nprint(nb, \"est-il un carre ? \", est_carre(nb))\nnb = 10\nprint(nb, \"est-il un carre ? \", est_carre(nb))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**(2)** 💻 Définir une fonction `liste_carres_entiers` qui prend en paramètre d'entrée un entier positif `n` et qui renvoie la liste décroissante des entiers compris entre 1 et `n` et qui sont des carrés d'entiers."},{"metadata":{"trusted":true},"cell_type":"code","source":"def liste_carres_entiers(n):\n    L = []\n    for k in reversed(range(1, n+1)):\n        if est_carre(k):\n            L.append(k)\n    return L","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Test\nlistes_carres = liste_carres_entiers(100)\nprint(listes_carres) # doit afficher [100, 81, 64, 49, 36, 25, 16, 9, 4, 1]","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**(3)** 💻 Implémenter la fonction `decomposition_carres` qui prend en paramètre d'entrée un entier positif `n` et qui renvoie, sous forme de tableau de longueur inférieure ou égale à 4, une décomposition de `n` en somme de carrés d'entiers."},{"metadata":{"trusted":true},"cell_type":"code","source":"def decomposition_carres(n):\n    if est_carre(n):\n        return [n]\n    else:\n        listes_carres = liste_carres_entiers(n)\n        for carre in listes_carres:\n            decompo = decomposition_carres(n - carre) + [carre]\n            if len(decompo) <= 4:\n                return decompo","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"# Test\nnb = 1871\nprint(\"La décomposition de \",nb, \"est : \", decomposition_carres(nb))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**(4)** ✏️ Donner une décomposition en somme d'au plus quatre carrés pour les entiers $300$, $1789$, $2021$ et $12345$."},{"metadata":{"trusted":true},"cell_type":"code","source":"def print_decompoision(n, decompo):\n    s = str(n)+ \" = \"\n    for n in decompo:\n        s = s + str(int(n**0.5))+\"² + \"\n    s = s[:-3]\n    print(s)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"nb = 1871\nprint_decompoision(nb, decomposition_carres(nb))\nnb = 300\nprint_decompoision(nb, decomposition_carres(nb))\nnb = 1789\nprint_decompoision(nb, decomposition_carres(nb))\nnb = 2021\nprint_decompoision(nb, decomposition_carres(nb))\nnb = 12345\nprint_decompoision(nb, decomposition_carres(nb))","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**(5)** ✏️ Proposer une fonction non récursive `decomposition_carres2(n)` qui permet de calculer la décomposition et tester la fonction"},{"metadata":{"trusted":true},"cell_type":"code","source":"def decomposition_carres2(n):\n    listes_carres = liste_carres_entiers(n)\n    listes_carres = listes_carres + [0]\n    for carre1 in listes_carres:\n        for carre2 in listes_carres:\n            for carre3 in listes_carres:\n                for carre4 in listes_carres:\n                    if carre1 + carre2 +carre3 +carre4 ==n :\n                        return [carre1, carre2, carre3, carre4]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"nb = 1871\nprint_decompoision(nb, decomposition_carres2(nb))\nnb = 300\nprint_decompoision(nb, decomposition_carres2(nb))\nnb = 1789\nprint_decompoision(nb, decomposition_carres2(nb))\nnb = 2021\nprint_decompoision(nb, decomposition_carres2(nb))\nnb = 12345\nprint_decompoision(nb, decomposition_carres2(nb))","execution_count":null,"outputs":[]},{"metadata":{"trusted":true},"cell_type":"code","source":"","execution_count":null,"outputs":[]}],"metadata":{"kernelspec":{"display_name":"Python 3.8.1 64-bit ('python38': conda)","language":"python","name":"python38164bitpython38conda56991d5ad1414e06a4dcd344400cf456"}},"nbformat":4,"nbformat_minor":2}
\ No newline at end of file
diff --git a/recursivite/recursivite_corrige.ipynb b/recursivite/recursivite_corrige.ipynb
index 26b02f2..e11d07f 100644
--- a/recursivite/recursivite_corrige.ipynb
+++ b/recursivite/recursivite_corrige.ipynb
@@ -1 +1 @@
-{"cells":[{"metadata":{},"cell_type":"markdown","source":"<h1 class=\"alert alert-success\">Récursivité </h2>"},{"metadata":{},"cell_type":"markdown","source":"<h2 class=\"alert alert-info\"> 1. Introduction </h2>\n\nLa **récursivité** est un concept qui est très proche de la notion mathématiques de la récurrence. On dit qu’une fonction est récursive si elle s’appelle elle-même.\nPour résoudre un problème ou effectuer un calcul, on se ramène à la résolution d’un problème similaire mais de complexité moindre. On recommence ainsi jusqu’à obtenir un problème élémentaire que l’on sait résoudre. \n\n!!! note Définition\nOn qualifie de **récursive** toute fonction qui s'appelle elle-même.\n!!!\n\nLa plus-part des langages de programmation actuels permettent de mettre en œuvre directement cette réduction du problème, en autorisant une fonction à s’appeler elle-même : on parle alors de fonction récursive. On trouvera souvent deux versions possibles d'un même programme : itérative et récursive.\n\nCependant deux éléments sont indispensables à la terminaison d’une fonction récursive :\n\n- il est nécessaire qu’il y ait une condition d’arrêt ;\n- il ne doit pas y avoir de suite infinie d’appels récursifs.\n\n### Exemple\nOn souhaite calculer la somme $S=\\sum_{i=1}^n i =1 +2+3+\\cdots+(n-1) + n$. Ci-dessous une fonction recursive qui calcule la somme des $n$ premiers termes dont on peut visualiser les appels"},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"from rcviz import viz # pour visualiser les appels \n@viz\ndef somme(n):\n    if n < 1:\n        return 0\n    else:\n        return n + somme(n - 1)\n\nsomme(4) # calcule 1 + 2 + 3 + 4","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Un sous-programme est dit récursif s’il fait appel à lui-même, comme ici.\nDétaillons la procédure compte :\n\n- Pour calculer la somme des `n` termes, on dépcompose le problème comme calculer la somme des `n-1` termes plus `n`;\n- le test `n < 0` est une condition d’arrêt, obligatoire sinon le sous-programme peut boucler indéfiniment;\n- les appels récursifs continuent jusqu’à ce que le paramètre passé à la procédure prenne la valeur 0;\n- la dernière valeur retournée est donc 0.\n\nOn peut visualiser les appels avec :"},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"somme.callgraph() # pour visualiser les appels récusifs","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"!!! danger Attention\nOn remarque qu'il est possible d'exécuter cette fonction avec un paramètre qui n'est pas un entier positif. Pour interdire ce cas de figure on peut utiliser l'instruction `assert` :\n!!!\n"},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"def somme(n):\n    assert n >= 0 and isinstance(n, int), \"n doit être un entier naturel\"\n    if n < 1:\n        return 0\n    else:\n        return n + somme(n - 1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"somme(-2)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"somme(2.8)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"somme(8)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 1 : Somme des éléments d'une liste </h3>\n\nEcrire une fonction récursive ```somme_liste``` qui :\n\n- prend en paramètre une liste d'entiers `L`\n- retourne la somme des éléments de la liste `L`\n\n\n**Coup de pouce :** \n\n*Condition d'arrêt* : si la liste est vide, la somme de ses élément vaut 0 : donc la fonction renvoie 0.\n\n*Récursion* : renvoyer la valeur du 1er élément additionnée de la somme du reste de la liste."},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"def somme_liste(L):\n    if len(L) <= 0:\n        return 0\n    else:\n        return L[0] + somme_liste(L[1:])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"# test \ntab = [5, 4, 7, 2]\nsomme_liste(tab)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 2 : Miroir d’une chaîne de caractère </h3>\n\nÉcrire une fonction ```miroir``` récursive qui :\n\n- prend comme paramètre une chaîne de caractères `s`\n- renvoie le « miroir » de la chaîne; par exemple, le miroir de \"abcde\" est \"edcba\".\n\n\n**Coup de pouce :** \n\n*Condition d'arrêt* : si la chaine contient un seul caractère ou aucun, son miroir est elle-même.\n\n*Récursion* : Le principe consiste à permutter le 1er et le dernier carcatère, et à recopier le miroir  de la sous-chaine interne (entre le 2ème caractère et l'avant-dernier) au milieu de ces 2 caractères. Il faut donc renvoyer une chaine qui est la concaténation du dernier caratère, du miroir de la sous-chaine interne, et du 1er caractère.\n\n**Aide** : on pourra utiliser la syntaxe `s[1:-1]` qui permet d'extraire une sous-chaine de caractères entre le second élément de l'avant dernier, et `s[0]`, respectivement `s[-1]`,  pour accéder au premier, respectivement dernier, élément"},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"def miroir(s):\n    if len(s) <= 1:\n        return s\n    else:\n        return s[-1] + miroir(s[1:-1]) + s[1]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"# test\nchaine = 'quelle belle chaine'\nmiroir(chaine)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h2 class=\"alert alert-info\">2. Rappels sur Turtle</h2>\n\nTurtle est un module Python permettant de dessiner sur un canevas. Le crayon est dirigé par une tortue !\n\nJupyter propose une implémentation de ce module (très légèrement modifié). Les commandes principales consistent à positionner la tortue, lever ou baisser le crayon (pour écrire ou non lorsque la tortue se déplace) et à commander les mouvements de la tortue (avancer/reculer, tourner à gauche/droite d'un certain angle).\n\nPour mieux comprendre et découvrir les commandes accessibles, étudier l'exemple de démonstration ci-dessous :"},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"import turtle as tt # import du module turtle\n\ntt.speed(3)         # vitesse moyenne (maxi = 10)\n\ntt.penup()          # lève le crayon (pour ne pas écrire pendant le déplacement)\ntt.setposition(-100, 100) \n# origine (0, 0) au centre du cadre de dessin (dimensions 600x600)\ntt.pendown()        # abaisse le crayon (pour voir la trace de la tortue)\n\ntt.forward(20)      # avance de 20\ntt.left(60)         # virage de 60° vers la gauche\ntt.forward(100)    \ntt.right(120)       # virage de 120° vers la droite\ntt.pencolor(\"red\")  # couleurs autorisées  \"blue\", \"yellow\", \"brown\", \"black\", \"purple\", \"green\"\ntt.forward(100)  \ntt.left(60)       \ntt.forward(100)     # recule de 100\ntt.backward(70)  \ntt.right(90)   \ntt.pencolor(\"green\")  \ntt.forward(300)  \n\ntt.penup()\ntt.home()           # retour à l'origine\n\ntt.done()           # indispensable pour activer la tortue dans Basthon","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"# 2ème exemple :\n\nimport turtle as tt # import du module turtle\n\n\ncouleurs = [\"red\", \"blue\", \"yellow\", \"brown\", \"black\", \"purple\", \"green\"]\n\ntt.speed(10)\n\nfor i in range(7):\n    tt.penup()\n    tt.setposition(-200+50*i, 0)\n    tt.pendown()\n    tt.pencolor(couleurs[i])\n    for j in range(4):\n        tt.forward(30)\n        tt.left(90)\n        \ntt.done()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Pour résumer:**\n\n| Fonction |Exemple|Commentaire|\n|:-------- |:------|:----------|\n|forward(x)|forward(150)|Trace un trait de 150 points|\n|backward(x)|backward(150)|Trace un trait “à reculons” de 150 points|\n|left(n)|left(60)|Tourne sur place la tortue de 60° à gauche|\n|right(n)|right(60)|Tourne sur place la tortue de 60° à droite|\n|setposition(x, y) |setposition(-100, 100)|va à la position (-100,100) sachant que l'origine (0;0) est au centre du cadre de dessin (dimensions 600x600)|\n|width(x)|width(5)|Change l’épaisseur à 5 points|\n|color(\"c\")|color(\"yellow\")|Change la couleur du trait (mais aucun trait n’est tracé à ce moment). Notez les guillemets !|\n|penup()|penup()|Lève la tortue (permet de se déplacer sans dessiner)|\n|pendown()|pendown()|Baisse le stylo|\n|home()|home()|retour à l'origine|"},{"metadata":{},"cell_type":"markdown","source":"<h2 class=\"alert alert-info\">3. Fractales : courbe de Koch</h2>\n\nLa courbe de Koch est une fractale reposant sur la construction récursive suviante :\n1. Étape 1 : Tracer un segment de longueur a. \n\n![Image de losange](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/koch_0.png)\n\n2. Étape 2 : Diviser le segment en 3 parties de même longueur. Construire un triangle équilatéral ayant pour base le segment médian de la première étape, et en supprimer la base.\n![Image de losange](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/koch_1.png)\n\n3. Étape 3 : Reprendre l'étape 2 sur chacun des segments créés.\n![Image de losange](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/koch_2.png)\n\n4. Et ainsi de suite...\n![Image de losange](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/koch_3.png)\n"},{"metadata":{},"cell_type":"markdown","source":"On peut construire récursivement cette courbe. \n\nLa fonction de tracer prend deux paramètres en entrée :\n* la longeur $a$ du segment.\n* l'étape $n$ de \"profondeur\" de récursivité. \n\nPar exemple, à la profondeur $n=0$, on trace un simple segment : ceci constituera la condition d'arrêt des appels récursifs. À la profondeur $n=1$, le tracé donne la figure de l'étape 2."},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 3 : Faire l'étape 2 </h3>\n\n\n1. Écrire une fonction `etape2(a)` qui permet de dessiner avec la tortue (pas de récursivité ici) la figure correspondant à l'étape 2 (décrite ci-avant).\n"},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"import turtle as tt # import du module turtle\ntt.speed(10) # pour dessiner plus rapidement\n\ndef etape2(a):\n    tt.forward(a)\n    tt.left(60)\n    tt.forward(a)\n    tt.right(120)\n    tt.forward(a)\n    tt.left(60)\n    tt.forward(a)\n    \n# test:\na = 50\netape2(a)\n\ntt.done()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. En vous inspirant de la logique du code de la fonction précédente (en la \"rendant récursive\"), écrire une fonction koch(a, n) récursive qui :\n\n    - prend comme paramètres un nombre entier a représentant la longueur du segment et un entier n égal au nombre de récursions souhaité.\n    - construit la courbe de Koch en divisant récursivement chacun des segments\n\n    *Rappel* : si n=0, le tracé est un simplement segment de longueur a."},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"import turtle as tt # import du module turtle\n\ntt.speed(10)\ntt.penup()\ntt.setposition(-300, 0) \ntt.pendown()\n\ndef koch(a, n):\n    if n == 0 :\n        tt.forward(a)\n    else:\n        koch(a/3, n-1)\n        tt.left(60)\n        koch(a/3, n-1)\n        tt.right(120)\n        koch(a/3, n-1)\n        tt.left(60)\n        koch(a/3, n-1)\n\nkoch(360, 4)\n\ntt.done()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h2 class=\"alert alert-info\">Et pour s'amuser encore un peu...</h2>\nExécuter le code ci-dessous :"},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"a = 180\n\ntt.speed(10)\ntt.penup()\ntt.setposition(-a/2, a/3) \ntt.pendown()\n\ndef flocon(a, n):\n    for i in range(3):\n        koch(a, n)\n        tt.right(120)\n        \nflocon(a, 3)\n\ntt.penup()\ntt.home()\n\ntt.done()","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"markdown","source":"---\n\n#### Remarque générale\n\nUne partie de ce notebook reprend le cours sur la récursivité du lycée Faustin Flerettiré http://nsinfo.yo.fr/nsi_term_programmation_recursivite.html. Le notebook est sous license Creative Commons [BY-NC-SA](https://creativecommons.org/licenses/?lang=fr)\n![Licence Creative Commons](https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png)"}],"metadata":{"kernelspec":{"display_name":"Python 3.8.1 64-bit ('python38': conda)","language":"python","name":"python38164bitpython38conda56991d5ad1414e06a4dcd344400cf456"}},"nbformat":4,"nbformat_minor":2}
\ No newline at end of file
+{"cells":[{"metadata":{},"cell_type":"markdown","source":"<div class = \"alert  alert-danger\"> \n    \n# Cours avec solution\n    \nCliquez sur **Exécuter tout** Dans le menu **Cellule**\n</div>"},{"metadata":{},"cell_type":"markdown","source":"<h1 class=\"alert alert-success\">Récursivité </h2>"},{"metadata":{},"cell_type":"markdown","source":"<h2 class=\"alert alert-info\"> 1. Introduction </h2>\n\nLa **récursivité** est un concept qui est très proche de la notion mathématiques de la récurrence. On dit qu’une fonction est récursive si elle s’appelle elle-même.\nPour résoudre un problème ou effectuer un calcul, on se ramène à la résolution d’un problème similaire mais de complexité moindre. On recommence ainsi jusqu’à obtenir un problème élémentaire que l’on sait résoudre. \n\n!!! note Définition\nOn qualifie de **récursive** toute fonction qui s'appelle elle-même.\n!!!\n\nLa plus-part des langages de programmation actuels permettent de mettre en œuvre directement cette réduction du problème, en autorisant une fonction à s’appeler elle-même : on parle alors de fonction récursive. On trouvera souvent deux versions possibles d'un même programme : itérative et récursive.\n\nCependant deux éléments sont indispensables à la terminaison d’une fonction récursive :\n\n- il est nécessaire qu’il y ait une condition d’arrêt ;\n- il ne doit pas y avoir de suite infinie d’appels récursifs.\n\n### Exemple\nOn souhaite calculer la somme $S=\\sum_{i=1}^n i =1 +2+3+\\cdots+(n-1) + n$. Ci-dessous une fonction recursive qui calcule la somme des $n$ premiers termes dont on peut visualiser les appels"},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"from rcviz import viz # pour visualiser les appels \n@viz\ndef somme(n):\n    if n < 1:\n        return 0\n    else:\n        return n + somme(n - 1)\n\nsomme(4) # calcule 1 + 2 + 3 + 4","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"Un sous-programme est dit récursif s’il fait appel à lui-même, comme ici.\nDétaillons la procédure compte :\n\n- Pour calculer la somme des `n` termes, on dépcompose le problème comme calculer la somme des `n-1` termes plus `n`;\n- le test `n < 0` est une condition d’arrêt, obligatoire sinon le sous-programme peut boucler indéfiniment;\n- les appels récursifs continuent jusqu’à ce que le paramètre passé à la procédure prenne la valeur 0;\n- la dernière valeur retournée est donc 0.\n\nOn peut visualiser les appels avec :"},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"somme.callgraph() # pour visualiser les appels récusifs","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"!!! danger Attention\nOn remarque qu'il est possible d'exécuter cette fonction avec un paramètre qui n'est pas un entier positif. Pour interdire ce cas de figure on peut utiliser l'instruction `assert` :\n!!!\n"},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"def somme(n):\n    assert n >= 0 and isinstance(n, int), \"n doit être un entier naturel\"\n    if n < 1:\n        return 0\n    else:\n        return n + somme(n - 1)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"somme(-2)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":false},"cell_type":"code","source":"somme(2.8)","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"somme(8)","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 1 : Somme des éléments d'une liste </h3>\n\nEcrire une fonction récursive ```somme_liste``` qui :\n\n- prend en paramètre une liste d'entiers `L`\n- retourne la somme des éléments de la liste `L`\n\n\n**Coup de pouce :** \n\n*Condition d'arrêt* : si la liste contient un seul élément, la somme de ses élément vaut la valeur de cet élément : donc la fonction renvoie ce nombre.\n\n*Récursion* : renvoyer la valeur du 1er élément additionnée de la somme du reste de la liste."},{"metadata":{},"cell_type":"markdown","source":"<div class = \"alert alert-block alert-warning\"> \n\n### Solution\n</div>"},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"# V1\ndef somme_liste(L):\n    if len(L)==1:\n        return L[0]\n    else:\n        S = L[0] + somme_liste(L[1:])\n        return S","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"# test \ntab = [5, 4, 7, 2]\nsomme_liste(tab) # la fonction doit renvoyer : 18","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"# V2\ndef somme_liste(L):\n    if len(L)==0:\n        return 0\n    else:\n        S = L[0] + somme_liste(L[1:])\n        return S","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"# test \ntab = [5, 4, 7, 2]\nsomme_liste(tab) # la fonction doit renvoyer : 18","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 2 : Miroir d’une chaîne de caractère </h3>\n\nÉcrire une fonction ```miroir``` récursive qui :\n\n- prend comme paramètre une chaîne de caractères `s`\n- renvoie le « miroir » de la chaîne; par exemple, le miroir de \"abcde\" est \"edcba\".\n\n\n**Coup de pouce :** \n\n*Condition d'arrêt* : si la chaine contient un seul caractère ou aucun, son miroir est elle-même.\n\n*Récursion* : Le principe consiste à permutter le 1er et le dernier carcatère, et à recopier le miroir  de la sous-chaine interne (entre le 2ème caractère et l'avant-dernier) au milieu de ces 2 caractères. Il faut donc renvoyer une chaine qui est la concaténation du dernier caratère, du miroir de la sous-chaine interne, et du 1er caractère.\n\n**Aide** : on pourra utiliser la syntaxe `s[1:-1]` qui permet d'extraire une sous-chaine de caractères entre le second élément de l'avant dernier, et `s[0]`, respectivement `s[-1]`,  pour accéder au premier, respectivement dernier, élément"},{"metadata":{},"cell_type":"markdown","source":"<div class = \"alert alert-block alert-warning\"> \n\n### Solution\n</div>"},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"# V1\ndef miroir(s):\n    if len(s)<= 1:\n        return s\n    else:\n        return s[-1] + miroir(s[1:-1]) + s[0]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"# test\nchaine = 'quelle belle chaine'\nmiroir(chaine) # la fonction doit renvoyer : 'eniahc ellleb elleu'\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"# V2\ndef miroir(s):\n    if len(s)<= 1:\n        return s\n    else:\n        return s[-1] + miroir(s[:-1])","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"# test\nchaine = 'quelle belle chaine'\nmiroir(chaine) # la fonction doit renvoyer : 'eniahc ellleb elleu'\n","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"# V3\ndef miroir(s):\n    if len(s)<= 1:\n        return s\n    else:\n        return  miroir(s[1:]) + s[0]","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"# test\nchaine = 'quelle belle chaine'\nmiroir(chaine) # la fonction doit renvoyer : 'eniahc ellleb elleu'\n","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h2 class=\"alert alert-info\">2. Rappels sur Turtle</h2>\n\nTurtle est un module Python permettant de dessiner sur un canevas. Le crayon est dirigé par une tortue !\n\nJupyter propose une implémentation de ce module (très légèrement modifié). Les commandes principales consistent à positionner la tortue, lever ou baisser le crayon (pour écrire ou non lorsque la tortue se déplace) et à commander les mouvements de la tortue (avancer/reculer, tourner à gauche/droite d'un certain angle).\n\nPour mieux comprendre et découvrir les commandes accessibles, étudier l'exemple de démonstration ci-dessous :"},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"import turtle as tt # import du module turtle\n\ntt.speed(3)         # vitesse moyenne (maxi = 10)\n\ntt.penup()          # lève le crayon (pour ne pas écrire pendant le déplacement)\ntt.setposition(-100, 100) \n# origine (0, 0) au centre du cadre de dessin (dimensions 600x600)\ntt.pendown()        # abaisse le crayon (pour voir la trace de la tortue)\n\ntt.forward(20)      # avance de 20\ntt.left(60)         # virage de 60° vers la gauche\ntt.forward(100)    \ntt.right(120)       # virage de 120° vers la droite\ntt.pencolor(\"red\")  # couleurs autorisées  \"blue\", \"yellow\", \"brown\", \"black\", \"purple\", \"green\"\ntt.forward(100)  \ntt.left(60)       \ntt.forward(100)     # recule de 100\ntt.backward(70)  \ntt.right(90)   \ntt.pencolor(\"green\")  \ntt.forward(300)  \n\ntt.penup()\ntt.home()           # retour à l'origine\n\ntt.done()           # indispensable pour activer la tortue dans Basthon","execution_count":null,"outputs":[]},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"# 2ème exemple :\n\nimport turtle as tt # import du module turtle\n\n\ncouleurs = [\"red\", \"blue\", \"yellow\", \"brown\", \"black\", \"purple\", \"green\"]\n\ntt.speed(10)\n\nfor i in range(7):\n    tt.penup()\n    tt.setposition(-200+50*i, 0)\n    tt.pendown()\n    tt.pencolor(couleurs[i])\n    for j in range(4):\n        tt.forward(30)\n        tt.left(90)\n        \ntt.done()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"**Pour résumer:**\n\n| Fonction |Exemple|Commentaire|\n|:-------- |:------|:----------|\n|forward(x)|forward(150)|Trace un trait de 150 points|\n|backward(x)|backward(150)|Trace un trait “à reculons” de 150 points|\n|left(n)|left(60)|Tourne sur place la tortue de 60° à gauche|\n|right(n)|right(60)|Tourne sur place la tortue de 60° à droite|\n|setposition(x, y) |setposition(-100, 100)|va à la position (-100,100) sachant que l'origine (0;0) est au centre du cadre de dessin (dimensions 600x600)|\n|width(x)|width(5)|Change l’épaisseur à 5 points|\n|color(\"c\")|color(\"yellow\")|Change la couleur du trait (mais aucun trait n’est tracé à ce moment). Notez les guillemets !|\n|penup()|penup()|Lève la tortue (permet de se déplacer sans dessiner)|\n|pendown()|pendown()|Baisse le stylo|\n|home()|home()|retour à l'origine|"},{"metadata":{},"cell_type":"markdown","source":"<h2 class=\"alert alert-info\">3. Fractales : courbe de Koch</h2>\n\nLa courbe de Koch est une fractale reposant sur la construction récursive suviante :\n1. Étape 1 : Tracer un segment de longueur a. \n\n![Image de losange](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/koch_0.png)\n\n2. Étape 2 : Diviser le segment en 3 parties de même longueur. Construire un triangle équilatéral ayant pour base le segment médian de la première étape, et en supprimer la base.\n![Image de losange](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/koch_1.png)\n\n3. Étape 3 : Reprendre l'étape 2 sur chacun des segments créés.\n![Image de losange](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/koch_2.png)\n\n4. Et ainsi de suite...\n![Image de losange](https://githepia.hesge.ch/info_sismondi/3AM.OS/-/raw/main/recursivite/koch_3.png)\n"},{"metadata":{},"cell_type":"markdown","source":"On peut construire récursivement cette courbe. \n\nLa fonction de tracer prend deux paramètres en entrée :\n* la longeur $a$ du segment.\n* l'étape $n$ de \"profondeur\" de récursivité. \n\nPar exemple, à la profondeur $n=0$, on trace un simple segment : ceci constituera la condition d'arrêt des appels récursifs. À la profondeur $n=1$, le tracé donne la figure de l'étape 2."},{"metadata":{},"cell_type":"markdown","source":"<h3 style=\"color:teal;background-color:azure;\" > <i class=\"fa fa-pencil\" aria-hidden=\"true\"> </i> &nbsp; Exercice 3 : Faire l'étape 2 </h3>\n\n\n1. Écrire une fonction `etape2(a)` qui permet de dessiner avec la tortue (pas de récursivité ici) la figure correspondant à l'étape 2 (décrite ci-avant).\n"},{"metadata":{},"cell_type":"markdown","source":"<div class = \"alert alert-block alert-warning\"> \n\n### Solution\n</div>"},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"import turtle as tt # import du module turtle\ntt.speed(10) # pour dessiner plus rapidement\n\ndef etape2(a):\n    tt.forward(a/3)\n    tt.left(60)\n    tt.forward(a/3)\n    tt.right(120)\n    tt.forward(a/3)\n    tt.left(60)\n    tt.forward(a/3)\n    \n# test:\na = 50\netape2(a)\n\ntt.done()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"2. En vous inspirant de la logique du code de la fonction précédente (en la \"rendant récursive\"), écrire une fonction koch(a, n) récursive qui :\n\n    - prend comme paramètres un nombre entier a représentant la longueur du segment et un entier n égal au nombre de récursions souhaité.\n    - construit la courbe de Koch en divisant récursivement chacun des segments\n\n    *Rappel* : si n=0, le tracé est un simplement segment de longueur a."},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"import turtle as tt # import du module turtle\n\ntt.speed(10)\ntt.penup()\ntt.setposition(-300, 0) \ntt.pendown()\n\ndef koch(a, n):\n    if n == 0:\n        tt.forward(a)\n    else:\n        koch(a/3, n-1)\n        tt.left(60)\n        koch(a/3, n-1)\n        tt.right(120)\n        koch(a/3, n-1)\n        tt.left(60)\n        koch(a/3, n-1)\n\nkoch(360, 3)\n\ntt.done()","execution_count":null,"outputs":[]},{"metadata":{},"cell_type":"markdown","source":"<h2 class=\"alert alert-info\">Et pour s'amuser encore un peu...</h2>\nExécuter le code ci-dessous :"},{"metadata":{"trusted":true,"scrolled":true},"cell_type":"code","source":"a = 180\n\ntt.speed(10)\ntt.penup()\ntt.setposition(-a/2, a/3) \ntt.pendown()\n\ndef flocon(a, n):\n    for i in range(3):\n        koch(a, n)\n        tt.right(120)\n        \nflocon(a, 3)\n\ntt.penup()\ntt.home()\n\ntt.done()","execution_count":null,"outputs":[]},{"metadata":{"trusted":false},"cell_type":"markdown","source":"---\n\n#### Remarque générale\n\nUne partie de ce notebook reprend le cours sur la récursivité du lycée Faustin Flerettiré http://nsinfo.yo.fr/nsi_term_programmation_recursivite.html. Le notebook est sous license Creative Commons [BY-NC-SA](https://creativecommons.org/licenses/?lang=fr)\n![Licence Creative Commons](https://i.creativecommons.org/l/by-nc-sa/4.0/88x31.png)"}],"metadata":{"kernelspec":{"display_name":"Python 3.8.1 64-bit ('python38': conda)","language":"python","name":"python38164bitpython38conda56991d5ad1414e06a4dcd344400cf456"}},"nbformat":4,"nbformat_minor":2}
\ No newline at end of file
-- 
GitLab