Adloun

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

Faire l'exercice suivant avec le tuteur

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.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant avec le tuteur →