nsi:terminales:recursivite:exemples
Différences
Ci-dessous, les différences entre deux révisions de la page.
| Les deux révisions précédentesRévision précédenteProchaine révision | Révision précédente | ||
| nsi:terminales:recursivite:exemples [2021/11/29 18:12] – goupillwiki | nsi:terminales:recursivite:exemples [2023/03/17 13:41] (Version actuelle) – ↷ Liens modifiés en raison d'un déplacement. 193.51.53.161 | ||
|---|---|---|---|
| Ligne 31: | Ligne 31: | ||
| </ | </ | ||
| - | [[https:// | + | Quelques commandes dans ce [[nsi: |
| <WRAP box> | <WRAP box> | ||
| Ligne 39: | Ligne 39: | ||
| ===== Tours de Hanoï ===== | ===== Tours de Hanoï ===== | ||
| - | Dans [[nsi: | + | Dans [[:nsi: |
| Un solution très simple de ce problème passe par une fonction récursive. | Un solution très simple de ce problème passe par une fonction récursive. | ||
| Ligne 60: | Ligne 60: | ||
| ==== Rappel ==== | ==== Rappel ==== | ||
| - | Ce problème a été vu en première dans le cadre de l' | + | Ce problème a été vu en première dans le cadre de l' |
| * On dispose d'un sac de capacité C, | * On dispose d'un sac de capacité C, | ||
| * d'un assortiment d' | * d'un assortiment d' | ||
| Ligne 79: | Ligne 79: | ||
| ==== Solution récursive ==== | ==== Solution récursive ==== | ||
| - | Supposons que j' | + | Supposons que j' |
| aurait enlevé les lignes A et B. | aurait enlevé les lignes A et B. | ||
| Ligne 89: | Ligne 89: | ||
| <WRAP box> | <WRAP box> | ||
| - | <WRAP tip> | + | <code lang-none> |
| + | FONCTION meilleur_sac | ||
| + | ENTRÉES: | ||
| + | c : capacité restante | ||
| + | | ||
| + | SORTIE: le sac formé d'un choix dans la liste items, | ||
| + | qui forme le meilleur sac possible avec la capacité c | ||
| + | DÉBUT | ||
| + | SI items vide ou c < = 0 ALORS | ||
| + | dans ce cas, on ne peut rien mettre dans le sac donc | ||
| + | | ||
| + | FIN SI | ||
| + | soit A le premier item parmi les items à choisir | ||
| + | (A existe forcément puisque si items vide, on aurait déjà fini) | ||
| + | | ||
| + | |||
| + | on forme un premier essai de sac, appelé sac1. Dans ce sac on place A | ||
| + | il reste donc c - poids(A) de capacité que l'on peut remplir avec items_sans_A | ||
| + | en résumé, sac1 = A + meilleur_sac(c - poids(A), items_sans_A) | ||
| + | à noter : il se pourrait que ce sac ne soit pas valide. En effet, il se peut | ||
| + | que poids(A) > c. | ||
| + | |||
| + | on forme un autre sac, sac2, qui ne contient pas A. On dispose donc de la totalité | ||
| + | de la capacité pour former un sac au mieux avec les autres items. | ||
| + | donc sac2 = meilleur_sac(c, | ||
| + | à noter : ce sac est forcément valide. | ||
| + | |||
| + | | ||
| + | SI le sac1 est valide et qu'il a une valeur plus grande que sac2 ALORS | ||
| + | | ||
| + | | ||
| + | | ||
| + | FIN | ||
| + | FIN | ||
| + | </ | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | <WRAP tip> | ||
nsi/terminales/recursivite/exemples.1638205974.txt.gz · Dernière modification : de goupillwiki
