Done exercise 16 and 17

This commit is contained in:
Simejo 2022-09-27 01:32:21 +02:00
parent 79c54570d4
commit 037d297763
3 changed files with 100 additions and 7 deletions

View File

@ -0,0 +1,22 @@
import math
def nCr(n: int, r: int) -> int:
f = math.factorial
return f(n) // f(r) // f(n - r)
def inputInteger(msg: str) -> int:
while True:
n = input(msg)
if n.isdigit():
return int(n)
if __name__ == '__main__':
n = inputInteger('Combiens de marches à lescalier ? ')
total = 0
for n3 in range(n//3 + 1):
for n2 in range((n - n3*3)//2 + 1):
n1 = n - n2*2 - n3*3
m = n1 + n2 + n3
total += nCr(m, n1)*nCr(m - n1, n2)
print(f'Il y a {total} façon(s) de monter lescalier \
en groupes de 1, 2 et 3 marches.')

View File

@ -26,6 +26,33 @@
\lhead{TD1 -- Probabilités finies}
\cfoot{Page \thepage}
% Code
\usepackage{listingsutf8}
\lstdefinestyle{algo}{%
inputencoding=utf8,
basicstyle=\footnotesize\ttfamily,
literate=
{'}{{\textquotesingle}}{1}
{}{{'}}{1}
{é}{{\'e}}{1}
{è}{{\`e}}{1}
{à}{{\`a}}{1}
{â}{{\^a}}{1}
{ç}{{\c{c}}}{1}
{œ}{{\oe}}{1}
{ù}{{\`u}}{1}
{É}{{\'E}}{1}
{È}{{\`E}}{1}
{À}{{\`A}}{1}
{Ç}{{\c{C}}}{1}
{Œ}{{\OE}}{1}
{Ê}{{\^E}}{1}
{ê}{{\^e}}{1}
{î}{{\^i}}{1}
{ï}{{\"i}}{1}
{ô}{{\^o}}{1}
{û}{{\^u}}{1}}
\setlength{\parindent}{0pt}
\begin{document}
@ -67,7 +94,7 @@ Dans les cas où notre calcul mène à $(p,q)\notin\mathbb{N}^2$ nous avons une
\section*{Exercise 14 (non-corrigé)}
Avec le même résonemment utilisé dans l'exercise 13:
Tous les chemins qui mènent à $(p,q)$ contiennent $p$ étapes «\,droite\,» et $q$ étapes «\,haut\,»,
tous les chemins qui mènent à $(p,q)$ contiennent $p$ étapes «\,droite\,» et $q$ étapes «\,haut\,»,
donc ils ont également $p+q$ étapes.
Nous pouvons conclure qu'il existe $\binom{p+q}{p}$ chemins qui mènet à $(p,q)$.
@ -87,24 +114,68 @@ Nous pouvons conclure qu'il existe au moins $23$ configurations qui mènent à u
\section*{Exercise 16 (non-corrigé)}
Par observation, j'obtiens ceci:
Sois polygone convexe à $n$ sommets.
Il a $n$ côtés.
Il a $n(n-3)$ diagonales.
Ses diagonales ont au maximum $\frac{n}{4}\left((n-3)(n-4)+2^{n-4}\right)$ intersection entre elles.
Ses diagonales ont au maximum $\frac{1}{24}n\left((n-2)^3-(n-2)\right)$ intersection entre elles.
J'ai déduis mes réponses avec le triangle de Pascal.
Essayons de le montrer rigoureusement:
\underline{\emph{Exercise n'est pas fini!}}
Sois un polygone convexe à $n$ sommets.
Appelons $S$ l'ensemble de ses sommets.
Sois $s_1\in S$,
$s_1$ a deux sommets adjacent $s_2$ et $s_n$ et il forme des diagonales avec chaque $s\in \{s_3,\dots,s_{n-1}\}$.
Soit $d_k=(s_1,s_{k+2})$,
nous avons les sommets à «\,droite\,» de la diagonale $S_\text{droite}=\{s_2,\dots,s_{k+1}\}$
et les sommets à «\,gauche\,» de la diagonale $S_\text{gauche}=\{s_{k+3},\dots,s_{n-1}\}$.
Les seuls diagonales qui croisent $d$ appartiennent à $S_\text{droite}\times S_\text{gauche}$,
donc $d$ croise $\#S_\text{droite}\#S_\text{gauche}$ ou $k(n-2-k)$ diagonales (car le polygone est convexe).
Posons $m=n-2$,
La sommes des intersections qui inclut les diagonales partant de $s_1$ est donc
\[
\sum_{k=1}^{m}{k(m-k)}
=m\sum_{k=1}^{m}{k}-\sum_{k=1}^{m}{k^2}
\]
appelons la $i_1$.
Nous savons que
\[
\sum_{k=1}^{m}{k}=\frac{m(m+1)}{2}
\]
et que
\[
\sum_{k=1}^{m}{k^2}=\frac{m(m+1)(2m+1)}{6}
\]
donc
\[
\begin{split}
i_1 &= m\cdot\frac{m(m+1)}{2}-\frac{m(m+1)(2m+1)}{6} \\
&= \frac{1}{6}\left( 3m^3+\cancel{3m^2} - 2m^3-\cancel{3m^2}-m \right) \\
&= \frac{1}{6}\left(m^3 - m \right)
\end{split}
\]
Pour avoir le nombre total d'intesections nous pouvons répéter ce calcul pour chaque sommet,
or chaque intersection sera compté quatre fois,
une fois pour chaque sommet des deux diagonales.
Nous avons donc $\frac{1}{24}n\left((n-2)^3 - (n-2) \right)$ intersections.
\pagebreak
\section*{Exercise 17 (non-corrigé)}
\underline{\emph{Exercise n'est pas fini!}}
Implémentation en Python3:
\lstinputlisting[language=Python,style=algo]{escalier.py}
\end{document}