NSI (terminale) · Chapitre 8 · Exercice de TD
Détecter l'échec du glouton
Les algorithmes gloutons · niveau 2
Énoncé
Détecter l'échec du glouton.
Pour un système de pièces donné et une somme, on veut comparer le nombre de pièces du glouton avec le nombre minimal réel. Écrire minimum_pieces(systeme, somme) par programmation dynamique, puis tester sur le système avec .
Corrigé
On construit un tableau dp où dp[k] est le nombre minimal de pièces pour rendre .
def minimum_pieces(systeme, somme):
INF = float("inf")
dp = [0] + [INF] * somme
for k in range(1, somme + 1):
for v in systeme:
if v <= k and dp[k - v] + 1 < dp[k]:
dp[k] = dp[k - v] + 1
return dp[somme]
print(minimum_pieces([1, 3, 4], 6)) # 2 (3 + 3)
# Le glouton donnerait 3 pieces (4 + 1 + 1)100 % gratuit
Essaie le suivant avec le tuteur
- L'exercice suivant avec le tuteur, sans compte : il guide pas à pas, sans donner la réponse
- 8 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
Sans compte : le cours, le premier QCM, 2 minutes de podcast et de vidéo et un exercice avec le tuteur. Pour tout le reste : inscription gratuite en 30 secondes, sans carte bancaire.