Exercice 3 - Partie B · Bac Numérique et Sciences Informatiques Antilles-Guyane 2026 (jour 2)
Thème : Récursivité · Tiré du sujet Jour 2 (2026)
Énoncé
Cet exercice traite de tableaux, de dictionnaires, de récursivité et de programmation dynamique.
Une scierie possède un stock de planches. Chacune des planches du stock a une longueur entière (en mètre) comprise entre 1 m et 10 m et un prix entier (en euro) qui dépend de cette longueur. Le propriétaire de la scierie souhaite estimer la valeur marchande de son stock.
On utilise dans tout le problème la variable globale prix du type list telle que pour tout entier n compris entre 1 et 10, prix[n] est le prix de vente en euro d'une planche de longueur n (en mètre).
On suppose ici que la liste prix est:
prix = [0, 1, 5, 8, 9, 10, 17, 17, 20, 24, 30] On remarque que l'élément d'indice 0 de prix est fixé à 0 mais ne sera jamais utilisé car une planche ne peut mesurer 0 m.
Partie B
On réalise qu'on peut parfois augmenter la valeur d'une planche en la découpant en planches plus petites (toujours de longueurs entières) et en vendant séparément les morceaux obtenus.
On cherche donc à déterminer la valeur maximale que peut rapporter une planche à l'entreprise, éventuellement en la découpant.
On remarque que:
on ne peut pas découper une planche de : sa valeur maximale est donc ;
une planche peut être vendue entière pour ou en deux planches de pour : il vaut donc mieux ne pas la découper;
une planche de peut être vendue entière pour ou en une planche de et une planche de pour ou en trois planches de pour : il vaut donc mieux ne pas la découper.
7.
Déterminer, en justifiant, la valeur maximale que peut rapporter une planche de .
On note valmax(n) la valeur maximale d'une planche de longueur mètres pour compris entre et en optimisant sa découpe et on propose la formule récursive ci-dessous.
Si , .
Sinon, .
8.
Expliquer le cas d'arrêt de cette formule récursive.
9.
Recopier et compléter les quatre lignes ci-dessous.
valmax(1) = prix[
] =
valmax(2) = prix[
] =
valmax(3) = prix[
] =
Ligne valmax(4) complétée:
10.
Expliquer pourquoi, si , on a bien:
On souhaite disposer de la fonction valmax qui prend en paramètre un entier et qui renvoie la valeur maximale obtenue pour une planche de longueur selon les prix de la variable globale prix.
11.
Recopier et compléter les lignes 2 à 7 du code de la fonction valmax ci-après.
1 def valmax(n):
8
return maximum
12.
Expliquer pourquoi l'appel de valmax(7) effectuera deux appels de valmax(5).

Corrigé
Corrigé proposé par AprenAI (non officiel)
7. Valeur maximale (en €) pour une planche de 4 m
Réponse : 10
7. Justification pour la planche de 4 m
Réponse : Une planche de 4 m peut être vendue entière pour 9 €, ou découpée en 3 m + 1 m (8 + 1 = 9 €), ou en 2 m + 2 m (5 + 5 = 10 €), ou en quatre morceaux de 1 m (4 €). La découpe en deux morceaux de 2 m maximise la valeur à 10 €.
8. Expliquer le cas d'arrêt de cette formule récursive.
Réponse : Le cas d'arrêt correspond à n <= 3. Pour ces longueurs, on ne découpe pas la planche car le prix de vente direct prix[n] est supérieur ou égal à toute combinaison de morceaux plus petits. On renvoie alors directement prix[n] sans appel récursif.
9. valmax(1) = prix[...] = ... (indice)
Réponse : 1
9. valmax(1) = prix[...] = ... (valeur)
Réponse : 1
9. valmax(2) = prix[...] = ... (indice et valeur)
Réponse : 2
9. valmax(2) = prix[...] = ... (valeur)
Réponse : 5
Les réponses des 6 questions restantes et l’explication pas à pas sont réservées aux membres Premium. Premium
Résous-le ici : correction automatique, indices et corrigé détaillé.
‹ Exercice 2 - Partie A · Antilles-Guyane 2026 (jour 1)