Adloun

algorithmique (école d'ingénieur) · Chapitre 3 · Application directe du cours

De combien de façons ?

Sacs avec répétitions, multi-ensembles et couples de sacs · niveau 2

Énoncé

On veut compter les façons de former la somme avec des pièces de valeurs en nombre illimité, sans tenir compte de l'ordre ( et sont la même façon).

  • On note le nombre de façons de former avec les premières sortes de pièces. Inspirez-vous de la seconde version du cours (« aucun exemplaire de la -ème pièce, ou au moins un ») pour écrire l'équation de récurrence.
  • Montrer qu'un seul tableau suffit, parcouru par croissants. Écrire la fonction.
  • Combien de façons de former avec ? de former avec ?

Corrigé

  • Les façons de former avec les premières sortes de pièces n'utilisent aucune pièce (il y en a ) ou en utilisent au moins une : en retirant l'une d'elles, on obtient une façon de former avec les mêmes sortes. Ces deux familles sont disjointes : on additionne. Base : , pour . Hérédité : ,

  • Pour fixé, demande (l'ancienne valeur de la case ) et (une case de la même ligne, déjà mise à jour si l'on parcourt les par valeurs croissantes).

static long facons(int[] P, int S) {
    long[] F = new long[S + 1];
    F[0] = 1;                                  // base : la façon vide
    for (int p : P)                            // k croissants
        for (int s = p; s < S + 1; s++)        // s croissants
            F[s] += F[s - p];                  // F[s] devient f(k,s)
    return F[S];
}

La boucle externe sur les pièces garantit que l'ordre des pièces ne compte pas : chaque façon est construite en ajoutant les pièces sorte par sorte.


nom : F
valeurs : 1 1 2 2 3 4 5 6 7 8 10
colorier : 10
vert : 5..9
fleches : 5->10
legende : pièces 1, 2, 5, passage de la pièce 5 : F[10] = 6 + F[5] = 10
  • Le programme donne façons de former avec , et façons de former avec .

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

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.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →