Adloun

NSI (terminale) · Chapitre 7 · Exercice d'entraînement

De combien de façons payer une somme ?

La programmation dynamique · Mémoïsation et approche ascendante · niveau 2

Énoncé

De combien de façons payer une somme ?

On dispose de pièces de valeurs pieces = [1, 2, 5] en quantité illimitée. On veut compter le nombre de façons de payer une somme , l'ordre des pièces ne comptant pas ( et sont la même façon).

  • Énumérer à la main les façons de payer .
  • On note w[s] le nombre de façons de payer avec les pièces déjà traitées. Expliquer pourquoi le programme suivant est correct, puis donner le nombre de façons de payer .

def nb_facons(pieces, S):
    w = [1] + [0] * S          # une seule facon de payer 0 : rien
    for p in pieces:
        for s in range(p, S + 1):
            w[s] = w[s] + w[s - p]
    return w[S]
  • Que compterait-on si l'on échangeait les deux boucles ?

Un exercice à chercher : son corrigé n'est pas publié. Sur Adloun, le tuteur guide par questions, sans donner la réponse.

Exercices semblables

Le cours du chapitre · Tous les exercices du chapitre