# Fattoriale

In matematica, si definisce fattoriale di un numero naturale $n$, indicato con $n!$, il prodotto dei numeri interi positivi minori o uguali a tale numero. In formula:
    $n!:=\prod _{k=1}^{n}k=1\cdot 2\cdot 3\cdots (n-1)\cdot n$
per la convenzione del prodotto vuoto si definisce inoltre $0!:=1$. La generalizzazione analitica del fattoriale è nota con il nome di funzione gamma di Eulero.
La notazione con il punto esclamativo è stata introdotta nel 1807 da Christian Kramp, mentre il nome fattoriale era stato coniato pochi anni prima, nel 1800 da Antoine Arbogast.
La sequenza dei fattoriali compare nella On-Line Encyclopedia of Integer Sequences (OEIS) come sequenza A000142.

## Esempio di numeri fattoriali

I valori dei primi numeri fattoriali sono riassunti nella seguente tabella:
| n | n! |
| 0 | 1 |
| 1 | 1 |
| 2 | 2 |
| 3 | 6 |
| 4 | 24 |
| 5 | 120 |
| 6 | 720 |
| 7 | 5 040 |
| 8 | 40 320 |
| 9 | 362 880 |
| 10 | 3 628 800 |
| 11 | 39 916 800 |
| 12 | 479 001 600 |
| 13 | 6 227 020 800 |
| 14 | 87 178 291 200 |
| 15 | 1 307 674 368 000 |
| 16 | 20 922 789 888 000 |
| 17 | 355 687 428 096 000 |
| 18 | 6 402 373 705 728 000 |
| 19 | 121 645 100 408 832 000 |
| 20 | 2 432 902 008 176 640 000 |
| 21 | 51 090 942 171 709 440 000 |
| 22 | 1 124 000 727 777 607 680 000 |
| 23 | 25 852 016 738 884 976 640 000 |
| 24 | 620 448 401 733 239 439 360 000 |
| 25 | 15 511 210 043 330 985 984 000 000 |
| 26 | 403 291 461 126 605 635 584 000 000 |
| 27 | 10 888 869 450 418 352 160 768 000 000 |
| 28 | 304 888 344 611 713 860 501 504 000 000 |
| 29 | 8 841 761 993 739 701 954 543 616 000 000 |
| 30 | 265 252 859 812 191 058 636 308 480 000 000 |

## Definizione ricorsiva

La funzione fattoriale può anche essere definita in modo ricorsivo:
    $n!:={\begin{cases}1&{\text{se }}n=0,\\n(n-1)!&{\text{se }}n\geq 1\end{cases}}$
Per questa ragione, viene spesso utilizzata nell'insegnamento dell'informatica per fornire il primo esempio di calcolo ricorsivo.

## Zero fattoriale

Nella definizione come produttoria, la richiesta che $0!$ sia pari a uno si accorda con la richiesta che il prodotto di zero fattori, il cosiddetto prodotto vuoto, come la potenza nulla di un intero positivo, sia uguale ad $1$. Per convincersi ulteriormente di questo fatto, si può anche pensare di definire $1!=1$ e osservare che
    $1=1!=1\cdot (1-1)!=1\cdot 0!=0!$
come si desume dalla definizione ricorsiva.

## Applicazioni

I fattoriali innanzitutto sono importanti nel calcolo combinatorio. In particolare vi sono $n!$ diverse sequenze formate da $n$ oggetti distinti, cioè vi sono $n!$ permutazioni di $n$ oggetti; i fattoriali quindi enumerano le permutazioni.
Data l'importanza delle permutazioni, segue che i fattoriali si incontrano in numerosissime espressioni. Ad esempio, rimanendo nel calcolo combinatorio, il numero di scelte di $k$ oggetti fra quelli che costituiscono un insieme di $n$ elementi, cioè il numero dei sottoinsiemi di $k$ elementi di un dato insieme di $n$ oggetti, è dato dal cosiddetto coefficiente binomiale:
    ${\binom {n}{k}}={\dfrac {n!}{k!(n-k)!}}$
I fattoriali si incontrano anche nel calcolo infinitesimale: innanzitutto va osservato che la $n$-esima derivata di $x^{n}$ è $n!$; una conseguenza di questo fatto è il teorema di Taylor che esprime una funzione $f(x)$ come serie di potenze nella $x$ servendosi dei fattoriali e dei valori delle derivate. I fattoriali si incontrano spesso anche nelle espressioni delle funzioni speciali, nell'analisi numerica, nel calcolo delle probabilità, nella meccanica statistica e nella meccanica quantistica.

## Varianti e generalizzazioni

Il fattoriale presenta numerose varianti e generalizzazioni. Tra le prime il multifattoriale e in particolare il semifattoriale, il fattoriale crescente e il fattoriale decrescente. Tra le generalizzazioni discrete troviamo l'iperfattoriale e il superfattoriale. Molte di queste varianti nascono dal calcolo della cardinalità di alcuni insiemi nati dalla combinatoria. La funzione gamma è invece una generalizzazione continua.

### Funzione gamma

La funzione gamma è una funzione analitica definibile mediante l'integrale
    $\Gamma (z):=\int _{0}^{+\infty }t^{z-1}e^{-t}\,dt\quad {\text{per }}\mathrm {Re} (z)>0.$
per essa si dimostrano facilmente le proprietà
    $\Gamma (1)=1\qquad \Gamma (z+1)=z\Gamma (z)\quad {\text{per }}\mathrm {Re} (z)>0.$
essa dunque estende la funzione fattoriale definita sugli interi naturali all'intero campo complesso (con la sola eccezione degli interi negativi):
    $z!=\Gamma (z+1)=\int _{0}^{+\infty }t^{z}e^{-t}\,dt.$
Si dimostra inoltre che essa è l'unica estensione analitica del fattoriale.

### Semifattoriale o doppio fattoriale

La notazione $n!!$ denota il semifattoriale (o doppio fattoriale) di $n$ ed è definita ricorsivamente nel modo seguente:
    $n!!={\begin{cases}1&{\text{se }}n=0{\text{ o }}n=1,\\n\cdot (n-2)!!&{\text{se }}n\geq 2.\end{cases}}$
per esempio $8!!=2\cdot 4\cdot 6\cdot 8=384$ e $9!!=1\cdot 3\cdot 5\cdot 7\cdot 9=945$. La sequenza di semifattoriali per $n=0,1,2,\dots$ è la seguente:
    $1,1,2,3,8,15,48,105,384,945,3840,\dots$
Tra le identità che legano il fattoriale al doppio fattoriale, troviamo:
    ${\begin{aligned}n!&=n!!\cdot (n-1)!!\\2^{n}\cdot n!&=(2n)!!\\{\dfrac {(2n+1)!}{2^{n}\cdot n!}}&=(2n+1)!!\end{aligned}}$
    La seconda identità risulta utile per i semifattoriali pari, mentre l'ultima identità per i semifattoriali dispari: è deducibile dalla constatazione che moltiplicare tra loro tutti i numeri dispari fino a $2n+1$ equivale a moltiplicare tutti gli interi fino a $2n+1$ per poi eliminare, ossia dividere, quelli pari, ossia $2^{n}\cdot n!$).

### Multifattoriale

La notazione $n!_{(\alpha )}$denota il multifattoriale di $n$ ed è definita ricorsivamente nel modo seguente:
    $n!_{(\alpha )}={\begin{cases}1&{\text{se }}n=0\\n&{\text{se }}0<n<\alpha \\n\cdot (n-\alpha )!_{(\alpha )}&{\text{se }}n\geq \alpha .\end{cases}}$
    La formula chiusa di $n!_{(\alpha )}$, per $n\in \mathbb {N}$ è
    $n!_{(\alpha )}=\alpha ^{\lceil {\frac {n}{\alpha }}\rceil }{\frac {\left({\frac {n}{\alpha }}\right)!}{\left({\frac {n}{\alpha }}-\lceil {\frac {n}{\alpha }}\rceil \right)!}}$
    dove $\lceil \cdot \rceil$ è la funzione parte intera superiore ed $x!=\Gamma (x+1)$.

#### Estensione analitica del multifattoriale

    È possibile estendere analiticamente il calcolo del multifattoriale anche per valori complessi.
    Sia
    $C_{\alpha }\left(z\right)={\frac {1}{a}}\left(1+2\sum _{k=1}^{\lfloor {\frac {a-1}{2}}\rfloor }\cos \left({\frac {2k\pi z}{a}}\right)+\operatorname {mod} \left(a-1,2\right)\cos \left(\pi z\right)\right)$
    Allora,
    $z!_{(\alpha )}=\alpha ^{\frac {z}{\alpha }}\Gamma \left(1+{\frac {z}{\alpha }}\right)\prod _{j=1}^{\alpha -1}\left({\frac {\alpha ^{\frac {\alpha -j}{\alpha }}}{\Gamma \left({\frac {j}{\alpha }}\right)}}\right)^{C_{\alpha }(z-j)}\qquad \alpha =1,2,3,...$
    I primi termini della sequenza definiscono i multifattoriale di passo $\alpha =1,2,3,...$
   * $z!_{(1)}=\Gamma (1+z)$
   * $z!_{(2)}=2^{\frac {z}{2}}\Gamma \left(1+{\frac {z}{2}}\right)\left({\frac {2}{\pi }}\right)^{\frac {1-\cos(\pi z)}{4}}$
   * $z!_{(3)}={\frac {3^{\frac {z}{3}}\cdot \Gamma \left(1+{\frac {z}{3}}\right)}{\left(3^{-{\frac {2}{3}}}\Gamma \left({\frac {1}{3}}\right)\right)^{{\frac {2}{\sqrt {3}}}\sin \left({\frac {2\pi }{3}}z\right)}}}\cdot \left({\frac {3{\sqrt {3}}}{2\pi }}\right)^{{\frac {1}{3}}+{\frac {2}{3}}\cos \left({\frac {2\pi }{3}}\left(z+1\right)\right)}$
   * $z!_{(4)}=2^{\frac {z}{2}}{\frac {\Gamma \left(1+{\frac {z}{4}}\right)}{\Gamma \left({\frac {1}{4}}\right)^{\sin \left({\frac {\pi z}{2}}\right)}}}{\frac {\pi ^{{\frac {\cos(\pi z)-3}{8}}+{\frac {1}{2}}\sin \left({\frac {\pi z}{2}}\right)+{\frac {1}{4}}\cos \left({\frac {\pi z}{2}}\right)}}{2^{{\frac {\cos(\pi z)-5}{8}}-{\frac {3}{4}}\sin \left({\frac {\pi z}{2}}\right)+{\frac {1}{2}}\cos \left({\frac {\pi z}{2}}\right)}}}$
    Ognuna di queste funzioni verifica le seguenti proprietà:
   * $z!_{(\alpha )}=z(z-\alpha )!_{(\alpha )}$
   * $z!=\prod _{i=0}^{\alpha -1}(z-i)!_{(\alpha )}$

##### Calcolo più efficiente

Grazie alla simmetria dei valori calcolati, l'estensione analitica del multifattoriale può essere ridefinita calcolando la metà dei termini nella produttoria.
$z!_{(\alpha )}=\alpha ^{{\frac {z}{\alpha }}+z_{0}(z)}\Gamma \left(1+{\frac {z}{\alpha }}\right){\frac {1}{\pi ^{p(z)}}}\prod _{j=1}^{\beta }{\frac {\sin \left({\frac {j\pi }{\alpha }}\right)^{C_{\alpha }(z+j)}}{\Gamma \left({\frac {j}{\alpha }}\right)^{\gamma _{j}(z)}}}$
Dove
* $\beta :=\left\lfloor {\frac {\alpha -1}{2}}\right\rfloor$
* $C_{\alpha }(z)$ è definito come in precedenza.
* $z_{0}\left(z\right)={\frac {\alpha -1}{2\alpha }}+{\frac {1}{\alpha }}\sum _{k=1}^{\beta }\csc \left({\frac {k\pi }{\alpha }}\right)\sin \left({\frac {2k\pi }{\alpha }}z-{\frac {k\pi }{\alpha }}\right)-\operatorname {mod} \left(\alpha -1,2\right){\frac {\cos \left(\pi z\right)}{2\alpha }}$
* $p\left(z\right)={\frac {\alpha -1}{2\alpha }}+{\frac {2}{\alpha }}\sum _{k=1}^{\beta }\csc \left({\frac {k\pi }{\alpha }}\right)\sin \left({\frac {k\pi }{\alpha }}\beta \right)\cos \left({\frac {2k\pi }{\alpha }}z+\left(\beta +1\right){\frac {k\pi }{\alpha }}\right)+{\frac {\operatorname {mod} \left(\alpha -1,2\right)}{\alpha }}\left(\sum _{k=1}^{\beta }\left(-1\right)^{k}\cos \left({\frac {2k\pi }{\alpha }}z\right)-{\frac {\cos \left(\pi z\right)}{2}}\right)$
* $\gamma _{j}\left(z\right)={\frac {4}{\alpha }}\sum _{k=1}^{\beta }\sin \left({\frac {2k\pi }{\alpha }}j\right)\sin \left({\frac {2k\pi }{\alpha }}z\right)$

#### Espansione di Fourier

È possibile approssimare $x!_{(\alpha )}$, con $x\in \mathbb {R}$ mediante una somma funzioni goniometriche.
La formula è analoga al caso della produttoria:
$x!_{(\alpha )}\approx \alpha ^{\frac {x}{\alpha }}\Gamma \left(1+{\frac {x}{\alpha }}\right)\sum _{j=1}^{\alpha }{\frac {\alpha ^{\frac {\alpha -j}{\alpha }}}{\Gamma \left({\frac {j}{\alpha }}\right)}}C_{\alpha }\left(x-j\right)$
Il massimo errore relativo commesso da questa approssimazione è riportato nella seguente tabella ed ha una crescita sub-logaritmica al crescere di $\alpha$
| $\alpha$ | massimo errore relativo | $\alpha$ | massimo errore relativo |
| 1 | 0.000% | 11 | ≈ 2.688% |
| 2 | ≈ 0.639% | 12 | ≈ 2.752% |
| 3 | ≈ 1.530% | 13 | ≈ 2.796% |
| 4 | ≈ 1.814% | 14 | ≈ 2.848% |
| 5 | ≈ 2.056% | 15 | ≈ 2.883% |
| 6 | ≈ 2.225% | 16 | ≈ 2.925% |
| 7 | ≈ 2.360% | 17 | ≈ 2.954% |
| 8 | ≈ 2.465% | 18 | ≈ 2.989% |
| 9 | ≈ 2.546% | 19 | ≈ 3.013% |
| 10 | ≈ 3.562% | 20 | ≈ 3.043% |
| 100 | ≈ 3.562% | 500 | ≈ 3.736% |
| 200 | ≈ 3.663% | 1000 | ≈ 3.766% |

#### Infattoriale - multifattoriale con passo infinito

È possibile estendere la funzione multifattoriale di passo finito $\alpha$, ad un fattoriale di passo infinito.
Questa funzione è detta infattoriale o ($\infty$-fattoriale) ed è definita mediante il limite della funzione multifattoriale:
${\begin{aligned}z!_{(\infty )}:=&\lim _{\alpha \to \infty }z!_{(\alpha )}\\=&\lim _{\alpha \to \infty }\alpha ^{\frac {z}{\alpha }}\Gamma \left(1+{\frac {z}{\alpha }}\right)\prod _{j=1}^{\alpha -1}\left({\frac {\alpha ^{\frac {\alpha -j}{\alpha }}}{\Gamma \left({\frac {j}{\alpha }}\right)}}\right)^{C_{\alpha }(z-j)}\end{aligned}}$
Verificando che
$\lim _{\alpha \to \infty }C_{\alpha }(z)={\frac {\sin(\pi z)}{\pi z}}={\text{sinc}}(z){\text{ per }}z\neq 0$
dove ${\text{sinc}}(z)$ è la funzione seno cardinale normalizzata, si ottiene che
$z!_{(\infty )}:=\prod _{k=1}^{\infty }k^{{\text{sinc}}(z-k)}$
I valori della funzione infattoriale sugli interi sono
$n!_{(\infty )}={\begin{cases}n&n\in \mathbb {N} _{+}\\1&n\in \mathbb {Z} \setminus \mathbb {N} _{+}\end{cases}}$

## Valutazione numerica dei fattoriali

Il valore numerico di $n!$ può essere calcolato mediante ripetute moltiplicazioni fino ad un valore non eccessivo di $n$; questo è ciò che fanno le calcolatrici odierne. Al di sopra di un certo $n$ lo strumento di calcolo in uso cessa di dare risultati sensati per via dell'overflow. Ad esempio, una calcolatrice capace di operare su $100$ cifre decimali riesce a calcolare $69!$, ma non il fattoriale successivo, in quanto $70!>10^{100}$.
Quando $n$ è molto grande in genere non serve conoscere il valore preciso di $n!$ e può essere sufficiente stimarlo con una opportuna accuratezza. Per questo scopo in genere si usa l'approssimazione di Stirling:
    $n!\approx {\sqrt {2\pi n}}\left({\frac {n}{e}}\right)^{n}~.$