programme de première | |
---|---|
E1: | listes |
E2: | listes |
E3: | listes |
E4: | tri par insertion |
E5: | tri par séléction |
E6: | dictionnaires / string |
E7: | tuple |
E8: | boucle / booléen / liste |
E9: | string |
E10: | dictionnaire / fonctions |
E11: | booléens / listes |
récursivité | |
---|---|
E1: | somme d'entiers |
E2: | chiffres romains |
E3: | factorielle |
E4: | rendu de monnaie |
POO | |
---|---|
E1: | la classe Chien |
E2: | carrés semi-magiques |
E3: | filtre sur une pile |
E4: | durées en POO |
Arbres | |
---|---|
E1: | Hauteur et taille d'un arbre |
E2: | parcours 1 |
E3: | parcours 2 |
E4: | Recherche dans un ABR |
E5: | Arbre binaire additif |
E6: | Arbre binaire de recherche |
Diviser pour régner | |
---|---|
E1: | sommet d'un tableau |
E2: | Indice d'une panne |
E3: | calcul d'une puissance |
Sécurisation des communications | |
---|---|
E1: | code César |
E2: | Vigenre |
programmation dynamique | ||
---|---|---|
E1: | Nombres de Delannoy | |
E2: | Communication des acacias | |
E2: | Mineur (le meilleur filon) |
Une des observations les plus anciennes a été faite sur les girafes par Wouter Van Hoven. Il a étudié pendant 2 ans le comportement des girafes dans un parc national en Afrique du Sud. Les girafes ingurgitent environ 80 kg de feuilles par jour. Pourtant, lorsqu'elles arrivent sur un acacia, elles ne restent que quelques minutes, broutent que quelques feuilles puis vont vers un autre arbre. L'arbre a réagi à la présence de la girafe en secrétant des tanins. Ce sont des molécules amères et toxiques pour les girafes. Mais en même temps, l'acacia va émettre de l'éthylène, qui est un gaz qui va se déplacer dans l'air et informer les autres arbres qu'un prédateur est là. Que vont faire les autres arbres ? Ils vont augmenter de manière préventive leur teneur en tanin et se préparer à l'arrivée des girafes.
On vous donne une liste de quantités de feuilles que pourrait manger une girafe sur un arbre à un indice donné le long d'une ligne d'acacias. La seule contrainte, c'est que la girafe ne peut pas manger les feuilles sur deux arbres consécutifs, mais souhaite en manger le plus possible. Écrire une fonction qui indique quelle quantité totale la girafe peut ingurgiter.
Exemples :
>>> feuilles = [4, 25, 20, 8, 17]
>>>> max_manger(feuilles)
42
La girafe peut manger 25 + 17 = 42 feuilles au maximum.
Prendre 4 + 20 + 17 n'en donne que 41.
>>> feuilles = [4, 6, 5, 7, 4]
>>>> max_manger(feuilles)
13
La girafe peut manger 4 + 5 + 4 = 13 ou bien 6 + 7 = 13 feuilles au maximum.
Votre solution doit pouvoir être efficace même avec de grands tableaux. Il est demandé d'utiliser une programmation dynamique.
Vous trouverez des indices pourvous aider sous la console Python
source : https://codex.forge.apps.education.fr
Indice 1 :
On peut envisager de savoir combien la girafe a pu manger au maximum en arrivant à un arbre i :
Indice 2 :
On utilisera deux variables :
Indice 3 :