# Calcolo combinatorio
###### tags: `md`
#### Cardinalità
###### <span style="color: #e53935">Definizione</span>
Un insieme $X$ è finito di cardinalità $n \in \mathbb{N}-\{0\}$ quando esiste una funzione bigettiva $g : X\to\mathbb{N}_n$, e si scrive $|X|=n$
L'insieme vuoto è un insieme finito la cui cardinalità si pone uguale a 0, e si scrive $|\emptyset|=0$
Se un insieme non vuoto Y è tale che per nessun $n \in \mathbb{N}-\{0\}$ esiste una funzione bigettiva da $Y$ a $\mathbb{N}_n$ allora si dice che $Y$ è infinito.
#### Lemma dei cassetti
###### <span style="color: #00897b">Lemma</span>
Supponiamo di avere una funzione $h : \mathbb{N}_n\to\mathbb{N}_m$ con $n>m$. Allora $h$ non è iniettiva.
Enunciato generale
Supponiamo di avere una funzione $f : X \to Y$ , dove $X$ è un insieme di cardinalità $n$ e $Y$ è un insieme di cardinalità $m$, con $n > m$. Allora f non è iniettiva.
###### <span style="color: #388e3c">Corollario</span>
Se $N$ oggetti sono sistemati in K scatole, allora c'è (almeno) una scatola che contiene almeno $\left\lceil \frac{N}{K} \right\rceil$ oggetti (qui $\left\lceil \frac{N}{K} \right\rceil$ è la ”parte intera superiore” di $\frac{N}{K}$, ossia il più piccolo numero intero $\ge \frac{N}{K}$).
#### Applicazioni
###### <span style="color: #0288d1">Teorema</span>
Supponiamo che $X$ e $Y$ siano insiemi tali che $X \subseteq Y$ e $Y$ sia finito. Allora anche $X$ è finito e $|X|\le|Y|$
Supponiamo che $f : X \to Y$ sia una funzione fra insiemi finiti e non vuoti tali che $|X| < |Y|$. Allora $f$ non è surgettiva.
Supponiamo che $X$ e $Y$ siano insiemi finiti non vuoti della stessa cardinalità. Allora una funzione $f : X \to Y$ è iniettiva se e solo se è surgettiva.
###### <span style="color: #ffc107">Osservazione</span>
Dunque, in questo caso dove $|X| = |Y|$, per provare che una certa funzione $g : X \to Y$ è bigettiva basta provare una sola fra queste due proprietà: $g$ è iniettiva o $g$ è surgettiva.
#### Insiemi di funzioni
###### <span style="color: #ce93d8">Notazione</span>
Siano $X$ e $Y$ due insiemi. Chiamiamo$ F(X \to Y )$ l'insieme di tutte le funzioni che hanno $X$ come dominio e $Y$ come codominio: $F(X \to Y) = \{f |f : X \to Y \text{ è una funzione}\}$
###### <span style="color: #0288d1">Teorema</span>
Siano $X$ e $Y$ finiti non vuoti con $|X| = n$ e $|Y| = m$. Allora $|F(X \to Y)| = m^n$
###### Dimostrazione
Sia $X=\{x_1,x_2,\ldots, x_n\}$ e $Y=\{y_1,y_2,\ldots, y_m\}$.
Proviamo a costruire una funzione da $X$ a $Y$.
Dove mandiamo $x_1$? Abbiamo $m$ scelte: $y_1,y_2,\ldots,y_m$.
Dove mandiamo $x_2$? Abbiamo sempre $m$ scelte: $y_1,y_2,\ldots, y_m$, perché non abbiamo fatto nessuna richiesta sulla funzione (tipo "che sia iniettiva" o "surgettiva" etc...). In generale, dove mandiamo $x_i$ con $i= 1,2,\ldots,n$? Abbiamo sempre $m$ scelte. Dunque alla fine possiamo costruire la nostra funzione in $\underbrace{m\cdot m\cdot m\cdots m}_{\text{n volte}}=m^n$ modi diversi.
Siccome ci capiterà di ripetere spesso ragionamenti simili a questo, vale la pena soffermarsi e riscrivere la dimostrazione da un altro punto di vista.
###### Dimostrazione
In realtà individuare una funzione $f:X\to Y$ equivale ad individuare un elemento del prodotto cartesiano $\underbrace{Y\times Y\times \cdots \times Y}_{\text{n volte}}=Y^n$. Infatti un elemento di $Y^n$ è una lista $(a_1,a_2,\ldots,a_n)$ di elementi di $Y$ e per ogni tale lista noi possiamo porre $f(x_1) =a_1, \quad f(x_2) =a_2,\quad \ldots,\quad f(x_n) =a_n$. Viceversa, data una funzione $f:X\to Y$possiamo costruire l'elemento $(f(x_1),f(x_2),\ldots,f(x_n))\in Y_n$. Dunque vale$|F(X\to Y)|=|Y_n|$ e noi abbiamo già osservato che $|Y^n|=m^n$.
###### <span style="color: #ce93d8">Notazione</span>
Chiamiamo $Inj (X \to Y)$ l'insieme di tutte le funzioni iniettive che hanno $X$ come dominio e $Y$ come codominio:$ Inj (X \to Y) = \{f | f : X \to Y \text{è una funzione iniettiva}\}$
###### <span style="color: #0288d1">Teorema</span>
Siano $X$ e $Y$ finiti non vuoti con $|X| = n$ e $|Y| = m$. Allora $|Inj(X → Y)| = m(m−1)(m−2)\cdots(m−n + 1)$
###### Dimostrazione
Sia $X=\{x_1,x_2,\ldots, x_n\}$ e $Y=\{y_1,y_2,\ldots, y_m\}$. Se $n > m$ il lemma dei Cassetti ci dice che$|Inj(X\to Y)|= 0$. Supponiamo allora $n\le m$ e proviamo a costruire una funzione iniettiva $g$ da $X$a $Y$.
Dove mandiamo $x_1$? Abbiamo $m$ scelte: $y_1,y_2,\ldots, y_m$.
Dove mandiamox2? Abbiamo $m−1$ scelte, ossia gli elementi di $Y−\{g(x_1)\}$, visto chela funzione deve essere iniettiva.
In generale, dove mandiamo $x_i$ con $i= 1,2,\ldots,n$? Abbiamo $m−(i−1)$ scelte, cioè gli elementi di $Y−\{g(x_1),g(x_2),\ldots,g(x_i−1)\}$. In particolare per l'ultimo elemento $x_n$ avremo $m−(n−1)$ scelte. Dunque alla fine possiamo costruire la nostra funzione in $m\cdot (m−1)\cdot (m−2)\cdots (m−n+ 1)$ modi diversi. Come ultima osservazione notiamo che la formula ottenuta vale per ogni $m$ e ogni $n$ interi positivi, ossia $|Inj(X→Y)|=m(m−1)(m−2)\cdots(m−n+ 1)$ si adatta bene anche al caso in cui $n > m$: in tal caso infatti la nostra formula è un prodotto di fattori fra i quali è presente anche $m−m$ e dunque ha come risultato $0$ che,come abbiamo osservato all'inizio, è proprio il numero di funzioni iniettive da $X$ a $Y$.
###### <span style="color: #ce93d8">Notazione</span>
Se $|X| = |Y|$ allora l'insieme delle funzioni bigettive che hanno $X$ come dominio e $Y$ come codominio è non vuoto:
$Bij (X \to Y): Bij (X \to Y) = \{ f | f : X \to Y \text{ è una funzione bigettiva} \}$
###### <span style="color: #0288d1">Teorema</span>
Siano $X$ e $Y$ finiti non vuoti con $|X| = |Y| = n$. Allora $|Bij (X \to Y)| = n!$
###### Dimostrazione
Visto che $|X|=|Y|$ allora $Bij(X\to Y) =Inj(X\to Y )$ e dunque si tratta solo di porre $n=m$ nell'enunciato del teorema precedente.
#### Cardinalità insieme delle parti
###### <span style="color: #e53935">Definizione</span>
L'insieme $\mathcal{P}(A)$ delle parti di $A$ è l'insieme i cui elementi sono tutti i sottoinsiemi di A: $\mathcal{P}(A) = {B|B \sube A}$
Osserviamo in particolare che $A \in \mathcal{P}(A)$ e $\emptyset \in \mathcal{P}(A)$. In questo paragrafo vogliamo contare quanti elementi ha $\mathcal{P}(A)$ nel caso in cui $A$ sia un insieme finito.
###### <span style="color: #0288d1">Teorema</span>
Se $|A| = n$ allora $|\mathcal{P}(A)| = 2^n$
###### Dimostrazione
Se $A=\emptyset$ allora ho solo un sottoinsieme, e la formula torna. Se $|A| \ge 1$, per contare quanti sono i sottoinsiemi di $A$ immaginiamo di doverne costruire uno. Osserviamo che per individuare un sottoinsieme basta sapere, per ognuno degli $n$ elementi di $A$, se tale elemento appartiene o no al sottoinsieme. Possiamo dunque passare in rassegna gli elementi di $A$ e per ognuno di loro abbiamo due scelte: SI (sta nel sottoinsieme) oppure NO.
Dunque ci sono $2^n$ distinti sottoinsiemi di $A$. Osserviamo che l'insieme vuoto corrisponde al caso in cui abbiamo ricevuto sempre la risposta NO e l'insieme $A$ al caso in cui abbiamo ricevuto sempre la risposta SI.
`nelle dispense c'è anche una dimostrazione a pagina 69 molto lunga basata sul'induzione`
#### Coefficiente binomiale
Dato un insieme $X$ finito o infinito, costruiamo dei particolari sottoinsiemi del suo insieme delle parti $\mathcal{P}(X)$
###### <span style="color: #e53935">Definizione</span>
Dato $r \to N$, chiamiamo $\mathcal{P}_r(X)$ l’insieme i cui elementi sono tutti i sottoinsiemi di $X$ che hanno cardinalità $r$:
$$
\mathcal{P}_r(X) = \{A|A \sube X \land |A| = r\}
$$
Indicheremo $|\mathcal{P}_r(X)|$ con il simbolo ${n \choose r}$ (si legge: "coefficiente binomiale $n$ su $r$").
###### <span style="color: #0288d1">Teorema</span>
Dati $n,r \in N$, con $0 \le r \le n$, vale che
$$
{n \choose r} =
{n (n−1) (n−2) ···(n−r + 1) \over r!} =
{n! \over r! (n−r)!}
$$
###### Dimostrazione
Come prima, fissato un insieme $X$ con $n$ elementi, cerchiamo di contare la cardinalità di $\mathcal{P}_r(X)$.
Consideriamo $\mathbb{N}_r=\{1,2,3,\ldots ,r\}$ e una funzione iniettiva
$$
f:\mathbb{N}_r\to X
$$
Chi è $Imm(f=)$? È un sottoinsieme di $X$ di cardinalità $r$, dunque è un elemento di $\mathcal{P}_r(X)$, proprio uno di quelli che dobbiamo "contare". Sarà vero che ogni elemento di $\mathcal{P}_r(X)$ lo posso esprimere come immagine di una funzione iniettiva da $\mathbb{N}_r$ a $X$? Sì, preso infatti un elemento di $\mathcal{P}_r(X)$, cioè un sottoinsieme $\{a_1,a_2,\ldots,a_r\} \subseteq X$, posso facilmente indicare una funzione iniettiva da $\mathbb{N}_r$ a $X$ la cui immagine sia proprio $\{a_1,a_2,\ldots,a_r\}$: per esempio posso prendere la $g:\mathbb{N}_r\to X$ definita da $g(1) =a_1, \; g(2) =a_2,\; \ldots,\;g(r) =a_r$. Insomma, con le funzioni iniettive da $\mathbb{N}_r$ a $X$ "raggiungiamo" tutti gli elementi di $\mathcal{P}_r(X)$. Per trovare $|\mathcal{P}_r(X)|$ potremmo allora cominciare a contare $|Inj(\mathbb{N}_r\to X)|$, ossia quante sono le funzioni iniettive da $\mathbb{N}_r$ a $X$. Ma questo numero lo abbiamo già calcolato: è $n(n−1) (n−2)\cdots(n−r+ 1)$. È vero allora che $|\mathcal{P}_r(X)|=n(n−1) (n−2)\cdots(n−r+ 1)$? NO, perché se scriviamo così commettiamo l'errore di contare ogni elemento di $\mathcal{P}_r(X)$ più volte. Precisamente, dato un sottoinsieme $\{a_1,a_2,\ldots,a_r\} \subseteq X$ lo stiamo contando $|Inj(\mathbb{N}_r\to\{a_1,a_2,\ldots,a_r\})|$ volte, cioè tante volte quante sono le diverse funzioni iniettive possibili da $\mathbb{N}_r$ a $\{a_1,a_2,\ldots,a_r\}$. Ma sappiamo quanto vale$|Inj(\mathbb{N}_r\to \{a_1,a_2,\ldots,a_r\})|$: applicando la formula per il conto delle funzioni iniettive a questo caso particolare in cui dominio e codominio hanno la stessa cardinalità $r$ (dunque stiamo in realtà considerando le funzioni bigettive), troviamo che
$$
|Inj(\mathbb{N}_r\to \{a_1,a_2,\ldots,a_r\})|=|Bij(\mathbb{N}_r\to \{a_1,a_2,\ldots,a_r\})|=r!
$$
Allora, visto che col numero $n(n−1) (n−2)\cdots (n−r+ 1)$ abbiamo contato $r!$ volte ogni elemento di $\mathcal{P}_r(X)$, per avere $|\mathcal{P}_r(X)|$ basterà dividerlo per $r!$:
$$
(nr)=|\mathcal{P}r(X)|={n(n−1) (n−2)\cdots(n−r+ 1) \over r!}
$$
#### Triangolo di Pascal-Tartaglia
###### <span style="color: #0288d1">Teorema</span>
Dati $r,n ∈N^+$ con$ 1 ≤ r < n$, vale
$$
{n \choose r} =
{n−1 \choose r−1} + {n−1 \choose r}
$$
###### Dimostrazione
Sia $X$ un insieme con $n$ elementi. Visto che $n\ge 1$, possiamo scegliere un elemento $a\in X$. Per calcolare $n\choose r$ dobbiamo calcolare la cardinalità di $\mathcal{P}_r(X)$. Possiamo adesso dividere $\mathcal{P}_r(X)$ in due parti, raggruppando in un sottoinsieme (che chiameremo $L_1$) tutti i sottoinsiemi di $X$ di cardinalità $r$ che contengono $a$, e in un altro (che chiameremo $L_2$) tutti i sottoinsiemi di $X$ di cardinalità $r$ che NON contengono $a$: $\mathcal{P}_r(X) =L_1\cup L_2$
Trattandosi di una unione di due insiemi disgiunti, vale che
$$
n\choose r=|\mathcal{P}_r(X)|=|L_1|+|L_2|
$$
Ora, un sottoinsieme di cardinalità $r$ che contiene $a$ è univocamente determinato se si dice quali sono gli altri elementi (quelli diversi da $a$) che contiene; tali elementi costituiscono un sottoinsieme di cardinalità $r−1$ di $X−\{a\}$. Dunque
$$
|L_1|=|\mathcal{P}_{r−1}(X−\{a\})|={n−1 \choose r−1}
$$
Analogamente si osserva che scegliere un sottoinsieme di $X$ di cardinalità $r$ che non contiene $a$ equivale a scegliere un sottoinsieme di $X−\{a\}$ di cardinalità $r$, dunque
$$
|L_2|=|\mathcal{P}_r(X−\{a\})|={n−1 \choose r}
$$
Allora possiamo concludere che
$$
{n \choose r}=|\mathcal{P}_r(X)|=|L_1|+|L_2|={n−1\choose r−1}+{n−1\choose r}
$$
Il teorema che abbiamo appena dimostrato è il motivo per cui possiamo disporre i coefficienti binomiali in modo da formare il cosiddetto "Triangolo di Pascal-Tartaglia"
#### Teorema del binomio di Newton
###### <span style="color: #0288d1">Teorema</span>
Date due variabili $a$ e $b$, per ogni $n \to N$ vale:
$$
(a + b)^n = \sum_{i=0}^n {n \choose i} a^{n−i}b^i
$$
cioè
$$
(a + b)^n =
{n \choose 0}a^n +
{n \choose 1}a^{n−1}b^1 +
{n \choose 2}a^{n−2}b^2 +
\cdots +
{n \choose n−1}a^1b^{n−1} +
{n \choose n}b^n
$$
###### Dimostrazione
Cominciamo da un esempio, per avere un'idea di cosa succede. Calcoliamo lo sviluppo di $(a+b)^3$. Se non raggruppiamo i termini troviamo:
$$
(a+b)^3= (a+b)(a+b)(a+b) =a(a+b)(a+b) +b(a+b)(a+b) =\\=
aa(a+b) +ab(a+b) +ba(a+b) +bb(a+b) = \\=
aaa+aab+aba+abb+baa+bab+bba+bbb
$$
Abbiamo espresso $(a+b)^3$ come somma di $8$ monomi, ognuno dei quali è stato ottenuto, tramite le proprietà distributiva e associativa, scegliendo o $a$ o $b$ da ogni parentesi che compare in $(a+b)(a+b)(a+b)$. Quindi, raggruppando adesso i termini tramite la proprietà commutativa, quale sarà il coefficiente di $a^2b$? Sarà uguale al numero dei monomi in cui troviamo due $a$ e una $b$. E questi quanti sono? Sono $3 ={3\choose 2}$, ossia sono tanti quanti sono i modi di scegliere due parentesi fra le tre del prodotto $(a+b)(a+b)(a+b)$ (queste saranno le parentesi da cui prendo la $a$): la prima e la seconda, la prima e la terza, la seconda e la terza. Dunque nello sviluppo avremo $3a^2b$. Ovviamente, saremmo arrivati allo stesso risultato contando i modi di scegliere una parentesi fra le tre del prodotto $(a+b)(a+b)(a+b)$ (quella da cui prendo la $b$), perché ${3\choose 1}={3\choose 2}= 3$. Passiamo al caso generale. Nello sviluppo di $(a+b)^n$ troveremo $2^n$ monomi, ciascuno ottenuto scegliendo o $a$ o $b$ da ognuna delle $n$ parentesi del prodotto
$$
(a+b)^n= (a+b)(a+b)(a+b)\cdots(a+b)(a+b)
$$
Raggruppando i termini, preso un indice $i$ con $0\le i\le n$, quale sarà allora il coefficiente di $a^{n−i}b^i$? Sarà uguale al numero di modi con cui si possono scegliere $i$ parentesi fra le $n$ del prodotto $(a+b)(a+b)(a+b)\cdots(a+b)(a+b)$ (quelle da cui prendiamo la $b$); dunque sarà uguale a $n\choose i$. Oppure sarà uguale al numero di modi con cui si possono scegliere $n−i$ parentesi fra le $n$ del prodotto $(a+b)(a+b)(a+b)\cdots(a+b)(a+b)$ (quelle da cui prendiamo la $a$): infatti come sappiamo ${n\choose i}={n\choose n−i}$. In conclusione, nello sviluppo di $(a+b)^n$ troveremo il termine ${n\choose i}a^{n−i}b^i$. Siccome questo è vero per ogni $i$, con $0\le i\le n$, abbiamo dimostrato il teorema.