Exercises & Solutions — 4 Python labs + 4 math problems
By Pr. El Hadiq Zouhair
Part A — Python labs
Part B — Mathematical problems
Écrire une fonction pascal(n) qui renvoie la liste des $n + 1$ premières lignes du triangle de Pascal (la ligne $i$ contient $\binom{i}{0}, \binom{i}{1}, \ldots, \binom{i}{i}$), sans utiliser math.comb. Chaque nouvelle ligne se construit à partir de la précédente via l'identité de Pascal.
pascal(5)[5] == [1, 5, 10, 10, 5, 1].Justification. Chaque entrée intérieure $\binom{i}{j}$ est obtenue par l'identité de Pascal $\binom{i}{j} = \binom{i-1}{j-1} + \binom{i-1}{j}$. Les extrémités $\binom{i}{0} = \binom{i}{i} = 1$ sont placées directement.
Écrire un script qui vérifie pour $n = 0, 1, \ldots, 20$ les trois identités :
Renvoyer True si elles sont toutes vraies, sinon afficher la première qui échoue.
Justification. Les trois identités sont des spécialisations du théorème du binôme $(x+y)^n = \sum \binom{n}{k} x^k y^{n-k}$ avec $(x,y) = (1,1)$, $(-1,1)$ et $(2,1)$ respectivement.
Écrire vandermonde(m, n, r) qui vérifie l'identité $\binom{m+n}{r} = \sum_{k=0}^{r} \binom{m}{k}\binom{n}{r-k}$ pour les paramètres donnés et renvoie le couple (membre_gauche, membre_droit).
Justification. L'identité de Vandermonde se démontre combinatoirement en classant les $r$-sous-ensembles de $\{1, \ldots, m+n\}$ par leur intersection avec $\{1, \ldots, m\}$. Le corollaire $\sum \binom{n}{k}^2 = \binom{2n}{n}$ s'obtient en prenant $m = n, r = n$ et en utilisant la symétrie $\binom{n}{n - k} = \binom{n}{k}$.
Le $n$-ème nombre de Catalan est défini par $C_n = \dfrac{1}{n+1}\binom{2n}{n} = \binom{2n}{n} - \binom{2n}{n+1}$.
catalan1(n) et catalan2(n) implémentant chacune une des formules.Justification. L'égalité algébrique des deux formules est démontrée slide 19 du cours. La récurrence convolutive $C_{n+1} = \sum C_k C_{n-k}$ s'interprète comme le décompte des arbres binaires enracinés à $n + 1$ feuilles, paramétré par la taille du sous-arbre gauche.
Considérer le développement de $(2 + x)^{12}$.
Le théorème du binôme donne $(2 + x)^{12} = \sum_{k=0}^{12} \binom{12}{k} 2^{12-k} x^k$.
1. Coefficient de $x^5$ : $\binom{12}{5} \cdot 2^7 = 792 \cdot 128 = 101\,376$.
2. Coefficient de $x^7$ : $\binom{12}{7} \cdot 2^5 = 792 \cdot 32 = 25\,344$. (Symétrie $\binom{12}{7} = \binom{12}{5}$.)
3. Somme des coefficients : $(2 + 1)^{12} = 3^{12} = 531\,441$.
4. Somme alternée : $(2 - 1)^{12} = 1^{12} = 1$.
Maeve doit choisir $8$ actions parmi $20$ pour constituer son portefeuille.
1. $\binom{20}{8} = 125\,970$.
2. Portefeuilles contenant l'action favorite : on la met, puis on choisit les $7$ autres parmi les $19$ restantes. $\binom{19}{7} = 50\,388$.
Portefeuilles l'excluant : $\binom{19}{8} = 75\,582$.
3. $50\,388 + 75\,582 = 125\,970 = \binom{20}{8}$. ✓
4. Démonstration combinatoire de Pascal. Soit $S$ un ensemble à $n$ éléments contenant un élément distingué $a$. Tout sous-ensemble de taille $k$ de $S$ se trouve dans exactement une des deux classes disjointes :
Une fleuriste a $15$ roses et $15$ brins de lavande. Un client veut un bouquet de $10$ fleurs.
1. $\binom{15}{3} \binom{15}{7} = 455 \cdot 6\,435 = 2\,927\,925$.
2. $\displaystyle \sum_{k=1}^{3} \binom{15}{k}\binom{15}{10-k} = \binom{15}{1}\binom{15}{9} + \binom{15}{2}\binom{15}{8} + \binom{15}{3}\binom{15}{7}$ $= 15 \cdot 5\,005 + 105 \cdot 6\,435 + 455 \cdot 6\,435 = 75\,075 + 675\,675 + 2\,927\,925 = 3\,678\,675$.
3. Par Vandermonde, $\displaystyle \sum_{k=0}^{10} \binom{15}{k}\binom{15}{10-k} = \binom{30}{10} = 30\,045\,015$.
4. Identité de Vandermonde : $\binom{m+n}{r} = \sum_{k=0}^{r} \binom{m}{k}\binom{n}{r-k}$. Démonstration combinatoire : classer les $r$-sous-ensembles de $\{1, \ldots, m+n\}$ selon le nombre $k$ d'éléments pris dans les $m$ premiers. Dans notre cas $m = n = 15$, $r = 10$, et le total est $\binom{30}{10}$.
Soit $n \geq 1$.
1. Démonstration de l'identité hockey-stick. On compte les $(r+1)$-sous-ensembles de $\{1, 2, \ldots, n+1\}$ classés par leur plus grand élément. Si le maximum est $i + 1$, les $r$ autres éléments se choisissent dans $\{1, \ldots, i\}$ — $\binom{i}{r}$ choix. Le maximum $i + 1$ varie de $r + 1$ à $n + 1$, soit $i \in \{r, r+1, \ldots, n\}$. Par la règle de la somme : $\sum_{i=r}^{n} \binom{i}{r} = \binom{n+1}{r+1}.$ $\square$
2. $\sum_{i=2}^{10}\binom{i}{2} = 1 + 3 + 6 + 10 + 15 + 21 + 28 + 36 + 45 = 165 = \binom{11}{3}$. ✓
3. Sum of squares via Vandermonde. Avec $m = n, r = n$ : $\binom{2n}{n} = \sum_{k=0}^{n}\binom{n}{k}\binom{n}{n-k} = \sum_{k=0}^{n}\binom{n}{k}^2$ par la symétrie $\binom{n}{n-k} = \binom{n}{k}$. $\square$
4. Estimation asymptotique. La formule de Stirling $n! \sim \sqrt{2\pi n}\,(n/e)^n$ donne $\binom{2n}{n} = \dfrac{(2n)!}{(n!)^2} \sim \dfrac{\sqrt{4\pi n}\,(2n/e)^{2n}}{2\pi n \cdot (n/e)^{2n}} = \dfrac{4^n}{\sqrt{\pi n}}.$ Pour $n = 10$ : $4^{10}/\sqrt{10\pi} \approx 1\,048\,576/5.605 \approx 187\,079$ — à comparer à la valeur exacte $\binom{20}{10} = 184\,756$ (erreur $\approx 1.3\%$).