4.7 Quelques problèmes supplémentaires
Dans cette section, nous voulons regarder quelques problèmes supplémentaires, qui en apparence se ressemble beaucoup. L’important ici est de porter une attention particulière aux différences entre chacun, et ce qui nous amène à utiliser une méthode ou une autre pour résoudre chacun de ces problèmes.
Exemple 4.7.1.
Un sac contient billes, toutes de couleurs différentes. De combien de façon différente Mélanie, Julie et Anne peuvent-ils choisir chacun une bille ? Pour répondre à la question, au moins deux approches sont possible. Premièrement, nous pouvons utiliser le principe du produit, ce qui nous donne directement possibilités. Nous pouvons aussi regarder le problème en terme d’objets que nous voulons choisir. Dans ce cas, il s’agit de choisir objets parmi avec ordre et sans remise, ce qui nous donne:
À noter que les deux méthodes sont bien entendu complètement équivalentes.
Exemple 4.7.2.
Un sac contient billes, toutes de couleurs différentes. De combien de façon différente René peut-il choisir billes ? L’idée est très semblable à l’exemple précédent, mais cette fois comme une seule personne doit choisir les billes, l’ordre n’est pas importante. On doit donc choisir objets parmi sans ordre et sans remise, ce qui nous donne:
Exemple 4.7.3.
Un sac contient billes. Parmi les billes, sont bleus, sont jaunes, sont vertes et sont rouges. De combien de façon différente René peut-il choisir billes ? Dans ce cas, comme nous avons plus de billes de chaque couleur que de billes que nous souhaitons choisir, le problème se fait avec remise. On doit donc choisir objets parmi sans ordre et avec remise. On a donc:
Exemple 4.7.4.
Un sac contient billes. Parmi les billes, sont bleus, sont jaunes, sont vertes et sont rouges. De combien de façon différente Loïk, Isabelle et Élise peuvent-ils choisir chacun une bille ? Dans ce cas, le problème revient à choisir objets parmi avec ordre et avec remise. On a donc possibilités.
Exemple 4.7.5.
Un sac contient billes, toutes de couleurs différentes. De combien de façon différente Michel, René et Marie peuvent-ils choisir chacun billes ? Dans ce cas, nous allons utiliser le principe du produit. Michel doit choisir billes parmi choix sans ordre et sans remise ET René doit choisir billes parmi choix sans ordre et sans remise ET Marie doit choisir billes parmi choix sans ordre et sans remise. On obtient donc:
Exemple 4.7.6.
Un sac contient billes. Parmi les billes, sont bleus, sont jaunes, sont vertes et sont rouges. De combien de façon différente Sarah peut-elle choisir billes ? Dans ce cas, le problème revient essentiellement à choisir objets parmi , sans ordre et avec remise. On a donc:
Par contre, il est impossible d’avoir billes rouges, car il n’y en a pas suffisamment. Il faut donc retiré une possibilité de la réponse. On a donc possibilités. À noter qu’ici une deuxième approche peut s’avérer intéressante et serait particulièrement intéressante dans le cas où nous aurions plus de contrainte. Il s’agit d’utiliser les fonctions génératrices. On peut en effet choisir ou billes bleus, ce que l’on peut dénoter à l’aide de la fonction génératrice . Il en est de même pour les billes jaunes et les billes vertes. Pour ce qui est des billes rouges, nous pouvons choisir ou billes rouges seulement, ce qui nous donne la fonction génératrice . En multipliant le tout, on obtient donc:
Notre réponse sera donc le coefficient de , ce qui correspond au nombre de façon de choisir billes. On obtient donc à nouveau .
Exemple 4.7.7.
Un sac contient billes. Parmi les billes, sont bleus, sont jaunes, sont vertes, sont rouges. De combien de façons différentes peut-on distribuer les billes parmi enfants si chaque enfant reçoit exactement une bille ? Dans ce cas, deux idées sont possibles. Dans un premier temps nous allons utiliser le principe du produit:
Distribuer les billes bleus sans ordre et sans remise (3 parmi 25)
ET
Distribuer les billes jaunes sans ordre et sans remise (5 parmi 22)
ET
Distribuer les billes vertes sans ordre et sans remise (7 parmi 17)
ET
Distribuer les billes rouges sans ordre et sans remise (10 parmi 10)
Ce qui nous permet d’obtenir:
Nous pouvons aussi de manière complètement équivalente interpréter le problème comme le problème du MISSISSIPPI, ce qui nous donne la réponse un peu plus rapidement.
Exemple 4.7.8.
Un sac contient billes. Parmi les billes, sont bleus, sont jaunes, sont vertes, et sont rouges. De combien de façon différente John peut-il choisir billes si parmi les billes au moins une est verte ? De ce cas, nous allons procéder en calculant le complément, ce qui nous simplifiera grandement le travail. Nous allons donc compter le nombre total de possibilité, puis soustraire celle qui n’ont aucune bille verte. On a donc:
Ici, la méthode des fonctions génératrices peut à nouveau s’avérer intéressante. En effet, la fonction génératrice correspondante aux billes bleus, aux billes jaunes et aux billes vertes est dans chacun des cas . À noter que nous n’avons pas mis le terme , car il est impossible de choisir billes de l’une de ces couleurs. Par contre, celle correspondante aux billes vertes sera , car nous devons en choisir au moins une. En multipliant le tout nous obtenons donc:
La réponse chercher sera donc le coefficient de , qui est bien entendu comme nous l’avions déjà trouvé.
Exemple 4.7.9.
Un sac contient billes. Parmi les billes, sont bleues, sont jaunes, sont vertes et sont rouges. De combien de façon peut-on donner une bille à chacun des enfants de la classe de maternelle de Mme Untel ? Ici le problème est similaire à celui du MISSISSIPPI dans le cas où nous voulions former un mot contenant seulement certaine des lettres. Nous allons donc utiliser l’approche des fonctions génératrices exponentielles. On a donc:
La solution du problème est le coefficient de . On a donc qu’il y a façons de distribuer les billes.
Exemple 4.7.10.
Un sac contient billes. Parmi les billes, sont bleues, sont jaunes, sont vertes et sont rouges. De combien de façon Sophie peut-elle choisir billes? On remarque immédiatement que le problème est très similaire au précédent, mais cette fois l’ordre n’est pas importante. Nous allons donc prendre la même approche que pour l’exemple précédent, mais en utilisant les fonctions génératrices ordinaires plutôt que les fonctions génératrices exponentielles.
La solution est le coefficient de . Sophie a donc possibilités pour choisir billes.
Exemple 4.7.11.
enfants sont placés sous forme d’un rang. De combien de façons différentes peut-on leur remettre à chacun une bille qui peuvent être bleue, verte, orange ou jaune de sorte qu’un enfant recevant une bille bleue ne soit jamais à côté d’un enfant recevant une bille orange ou jaune ? Pour ce faire, nous allons commencer par modéliser le problème à l’aide d’un automate.
Si on dénote par le nombre de solution possible avec enfants (les solutions valides), et on dénote par:
| Nombre de solutions valides se terminant par une boule bleue | |
| Nombre de solutions valides se terminant par une boule verte | |
| Nombre de solutions valides se terminant par une boule orange | |
| Nombre de solutions valides se terminant par une boule jaune |
alors à partir de l’automate on obtient le système d’équations définies par récurrence suivant:
avec les valeurs initiales . À l’aide de Python, ou même à la main, il devient alors relativement facile de construire une table de valeurs.
1 from sympy import *2 from pandas import *3 init_printing()45 def a(n):6 if n == 1:7 return 18 else:9 return a(n-1) + b(n-1)1011 def b(n):12 if n == 1:13 return 114 else:15 return a(n-1) + b(n-1) + c(n-1) + d(n-1)1617 def c(n):18 if n == 1:19 return 120 else:21 return b(n-1) + c(n-1) + d(n-1)2223 def d(n):24 if n == 1:25 return 126 else:27 return b(n-1) + c(n-1) + d(n-1)2829 def x(n):30 return a(n) + b(n) + c(n) + d(n)3132 tableau = DataFrame({33 "a(n)": [a(n) for n in range(1,11)],34 "b(n)": [b(n) for n in range(1,11)],35 "c(n)": [c(n) for n in range(1,11)],36 "d(n)": [d(n) for n in range(1,11)],37 "x(n)": [x(n) for n in range(1,11)]38 })39 tableau.index = [n for n in range(1,11)]40 tableau
| 1 | 1 | 1 | 1 | 1 | 4 |
| 2 | 2 | 4 | 3 | 3 | 12 |
| 3 | 6 | 12 | 10 | 10 | 38 |
| 4 | 18 | 38 | 32 | 32 | 120 |
| 5 | 56 | 120 | 102 | 102 | 380 |
| 6 | 176 | 380 | 324 | 324 | 1204 |
| 7 | 556 | 1204 | 1028 | 1028 | 3816 |
| 8 | 1760 | 3816 | 3260 | 3260 | 12096 |
| 9 | 5576 | 12096 | 10336 | 10336 | 38344 |
| 10 | 17672 | 38344 | 32768 | 32768 | 121552 |
La solution de notre problème est donc possibilités. Pour résoudre le problème, nous aurions aussi pu réécrire notre système d’équations définie par récurrence sous forme matricielle, et appliquer les méthodes de l’algèbre linéaire pour le résoudre. Dans ce cas, nous aurions obtenu l’équation:
La solution de notre problème étant la somme des éléments du vecteur de droite, ce qui nous donne bien entendu la même valeur que nous avions trouvé précédemment.
Il aurait aussi été possible de trouver une seule récurrence utilisant uniquement la suite . Bien que cette dernière soit sans doute plus intéressante, en particulier lorsqu’il s’agit de faire les calculs à la main, la trouver dans le cas présent n’est pas trivial sans avoir recours au technique de l’algèbre linéaire. La méthode la plus simple consiste à trouver le polynôme caractéristique de la matrice :
En remplaçant les par , les par , les par et les par , on obtient la récurrence suivante:
où les valeurs initiales ont été trouvé indépendamment par simple énumération. Notez finalement que bien que la méthode que nous avons utilisé ci-dessus soit particulièrement complexe, vérifier que la récurrence est correcte est pour sa part un problème facile.