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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®@F#CJ^B7;4~ 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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\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\n\n3. Étape 3 : Reprendre l'étape 2 sur chacun des segments créés.\n\n\n4. Et ainsi de suite...\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 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"},{"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\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\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\n\n3. Étape 3 : Reprendre l'étape 2 sur chacun des segments créés.\n\n\n4. Et ainsi de suite...\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 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"},{"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\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> 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> 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\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\n\n3. Étape 3 : Reprendre l'étape 2 sur chacun des segments créés.\n\n\n4. Et ainsi de suite...\n\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> 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"}],"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> 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> 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\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\n\n3. Étape 3 : Reprendre l'étape 2 sur chacun des segments créés.\n\n\n4. Et ainsi de suite...\n\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> 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"}],"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