algorithmique (école d'ingénieur) · Chapitre 3 · Application directe du cours
Découper une barre
Sacs avec répétitions, multi-ensembles et couples de sacs · niveau 2
Énoncé
Une scierie vend des barres de longueur au prix :
| 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | |
|---|---|---|---|---|---|---|---|---|
| 1 | 5 | 8 | 9 | 10 | 17 | 17 | 20 |
Elle dispose d'une barre de longueur qu'elle peut découper en morceaux de longueurs entières (sans perte).
- Montrer qu'il s'agit d'un sac avec répétitions : quels sont les objets, leurs tailles, leurs valeurs ? Pourquoi peut-on ici supprimer l'indice ?
- On note le prix maximum d'une barre de longueur . Donner l'équation de récurrence, écrire le programme et donner une découpe optimale de la barre de longueur .
Corrigé
- Les objets sont les longueurs de morceaux (taille , valeur ), disponibles en nombre illimité ; la contenance est . Comme la barre est entièrement vendue et qu'un morceau de longueur existe toujours, on peut raisonner directement sur le dernier morceau sans numéroter les objets : c'est le même raisonnement que pour le rendu de monnaie.
- Base : . Hérédité : ,
static int[] decoupe(int[] prix, int L) {
int[] R = new int[L + 1]; // base : R[0] = 0
for (int l = 1; l < L + 1; l++) // l croissants
for (int i = 1; i <= Math.min(l, prix.length); i++)
R[l] = Math.max(R[l], prix[i-1] + R[l - i]); // dernier morceau : i
return R;
}
== decoupe : r = [0, 1, 5, 8, 10, 13, 17, 18, 22]
decoupe optimale de 8 : 6 2
La barre de longueur se vend au mieux : un morceau de () et un morceau de (), mieux que la barre entière ().
nom : r
valeurs : 0 1 5 8 10 13 17 18 22
colorier : 8
vert : 0 6
fleches : 0->6:+17 6->8:+5
legende : r(8) = 5 + r(6) = 5 + 17 = 22 : morceaux de 6 et de 2
Complexité .
100 % gratuit
La suite du chapitre est sur Adloun
- 9 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le podcast et la vidéo du chapitre : 2 minutes d'écoute sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours, le premier QCM et 2 minutes de podcast et de vidéo. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.