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 1 m1\text{ m}: sa valeur maximale est donc 1 €1\text{ €};

une planche 2 m2\text{ m} peut être vendue entière pour 5 €5\text{ €} ou en deux planches de 1 m1\text{ m} pour 1+1=2 €1 + 1 = 2\text{ €}: il vaut donc mieux ne pas la découper;

une planche de 3 m3\text{ m} peut être vendue entière pour 8 €8\text{ €} ou en une planche de 2 m2\text{ m} et une planche de 1 m1\text{ m} pour 1+5=6 €1 + 5 = 6\text{ €} ou en trois planches de 1 m1\text{ m} pour 1+1+1=3 €1 + 1 + 1 = 3\text{ €}: il vaut donc mieux ne pas la découper.

7.

Déterminer, en justifiant, la valeur maximale que peut rapporter une planche de 4 m4\text{ m}.

On note valmax(n) la valeur maximale d'une planche de longueur nn mètres pour nn compris entre 1 m1\text{ m} et 10 m10\text{ m} en optimisant sa découpe et on propose la formule récursive ci-dessous.

Si n≤3n \le 3, valmax(n)=prix[n]\text{valmax}(n) = \text{prix}[n].

Sinon, valmax(n)=max⁡(prix[n],prix[n−1]+valmax(1),prix[n−2]+valmax(2),…,prix[1]+valmax(n−1))\text{valmax}(n) = \max(\text{prix}[n], \text{prix}[n-1] + \text{valmax}(1), \text{prix}[n-2] + \text{valmax}(2), \dots, \text{prix}[1] + \text{valmax}(n-1)).

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 n≥4n \ge 4, on a bien:

valmax(n)=max⁡(prix[n],prix[n−1]+valmax(1),prix[n−2]+valmax(2),…,prix[1]+valmax(n−1))\text{valmax}(n) = \max(\text{prix}[n], \text{prix}[n-1] + \text{valmax}(1), \text{prix}[n-2] + \text{valmax}(2), \dots, \text{prix}[1] + \text{valmax}(n-1))

On souhaite disposer de la fonction valmax qui prend en paramètre un entier nn et qui renvoie la valeur maximale obtenue pour une planche de longueur nn 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).

Énoncé: Exercice 3 - Partie B · Bac Numérique et Sciences Informatiques Antilles-Guyane 2026 (jour 2)

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)

Plus d’exercices de Récursivité