# Numero decimale periodico

In matematica, un numero decimale periodico è un numero razionale che espresso in notazione decimale ha una stringa (finita) di cifre dopo la virgola che, da un certo punto in poi, si ripete all'infinito. Questa stringa ripetuta è detta periodo del numero. Molti numeri periodici hanno, prima che inizi il periodo, una stringa (finita) di cifre che non si ripete: tale stringa non ripetuta è detta antiperiodo. Precisamente, l'antiperiodo è il gruppo di cifre decimali che si trovano fra la virgola e il periodo; ma secondo alcuni autori l'antiperiodo include tutta la rappresentazione decimale prima del periodo.
Dato che la rappresentazione decimale del numero è infinita esistono, principalmente, due convenzioni per scrivere il numero in forma compatta. Si pone una linea continua sopra le cifre del periodo oppure si racchiudono le cifre che si ripetono tra parentesi tonde. Ad esempio 23,48771 = 23,4(8771) = 23,487718771877187718771…
Ogni numero decimale periodico, essendo una particolare rappresentazione di un numero razionale, può essere rappresentato mediante una frazione. Vale anche il viceversa, cioè che ogni numero razionale è periodico e quindi ogni frazione può essere espressa mediante un numero decimale periodico. Questo è immediato osservando che ogni numero con parte decimale finita in realtà è periodico di periodo 0. Ad esempio scrivendo 2,5 = 2,50 = 2,50000…

## Descrizione e classificazione

I numeri decimali periodici si dividono in:
* semplici, se subito dopo la virgola è presente il periodo (per esempio: 8,5);
* misti, se dopo la virgola è presente l'antiperiodo (per esempio: 8,435).
Il numero periodico misto presenta tre elementi:
* la parte intera, composta dalle cifre poste prima della virgola;
* l'antiperiodo, composto da una o più cifre poste tra la virgola e il periodo;
* il periodo, composto da una o più cifre che si ripetono all'infinito dopo la virgola.
Un esempio di numero periodico misto è:
    $8{,}43555555555555555\dots$
in cui 8 è la parte intera, 5 il periodo e 43 l'antiperiodo.
Il periodo può essere composto da più cifre, per esempio: 8,435353535353… che si rappresenta con 8,435.

## Frazione generatrice di un numero decimale periodico

Ogni numero periodico ha la propria frazione generatrice. Per calcolarla occorre:
* scrivere il numero senza virgola:
    $\lfloor 8{,}{\overline {5}}\times 10\rfloor =85.$
* Sottrarre dal numero tutto ciò che precede il periodo:
    $85-8=77.$
* Dividere il risultato trovato per un numero formato da tanti 9 quante sono le cifre del periodo seguiti da tanti 0 per ogni eventuale cifra dell'antiperiodo:
    ${\frac {77}{9}}=8{,}55555\dots$
Lo stesso procedimento per il numero periodico 8,435 è:
    $8{,}43{\overline {5}}={\frac {8435-843}{900}}.$
E per il numero periodico 8,435 è:
    $8,4{\overline {35}}={\frac {8435-84}{990}}.$
In maniera analoga si può usare questo procedimento per trasformare i numeri decimali limitati:
    $8{,}4=8{,}4{\overline {0}}={\frac {840-84}{90}}.$

### Dimostrazione

Tale metodo può essere dimostrato attraverso l'uso della serie geometrica: prendiamo un numero periodico semplice
    $x=0,{\overline {a_{1}a_{2}a_{3}\dots a_{n}}}$
dove gli $a_{k}$ sono cifre che vanno da 0 a 9 (almeno una deve essere diversa da 0) e $n$ è la lunghezza del periodo. Scegliamo di partire proprio con questo tipo di numero decimale perché poi sarà facile estendere l'idea al caso generale. Una riscrittura equivalente per $x$ è la seguente:
    $x=\sum _{k=0}^{+\infty }\left({\frac {a_{1}}{10^{nk+1}}}+{\frac {a_{2}}{10^{nk+2}}}+\cdots +{\frac {a_{n}}{10^{nk+n}}}\right).$
Otteniamo, in questo modo, una somma di $n$ serie geometriche:
    ${\begin{aligned}\sum _{k=0}^{+\infty }{\frac {1}{10^{nk+1}}}&={\frac {1}{10}}\cdot {\frac {10^{n}}{10^{n}-1}}={\frac {10^{n-1}}{10^{n}-1}}\\\sum _{k=0}^{+\infty }{\frac {1}{10^{nk+2}}}&={\frac {1}{10^{2}}}\cdot {\frac {10^{n}}{10^{n}-1}}={\frac {10^{n-2}}{10^{n}-1}}\\&\cdots \\\sum _{k=0}^{+\infty }{\frac {1}{10^{nk+n}}}&={\frac {1}{10^{n}}}\cdot {\frac {10^{n}}{10^{n}-1}}={\frac {1}{10^{n}-1}}\end{aligned}}$
rendendo così possibile scrivere l'espressione frazionaria di $x$ come
    $x={\frac {a_{1}a_{2}\dots a_{n}}{\underbrace {99\dots 9} _{n{\text{ volte}}}}}$
e il numero $a_{1}a_{2}\dots a_{n}$ risulta essere un numero intero di $n$ cifre, equivalente alla scrittura di $x$ senza la virgola decimale.
Il caso più generale è rappresentato dal numero
    $y=c_{1}c_{2}\dots c_{m},b_{1}b_{2}\dots b_{p}{\overline {a_{1}a_{2}\dots a_{n}}}$
che può essere riscritto nel seguente modo:
    ${\begin{aligned}y&=c_{1}c_{2}\dots c_{m}+b_{1}b_{2}\dots b_{p}\cdot 10^{-p}+0,{\overline {a_{1}a_{2}\dots a_{n}}}\cdot 10^{-p}=\\&=c_{1}c_{2}\dots c_{m}+b_{1}b_{2}\dots b_{p}\cdot 10^{-p}+{\frac {a_{1}a_{2}\dots a_{n}}{99\dots 9\cdot 10^{p}}}.\end{aligned}}$
Ricordando che $99\dots 9=10^{n}-1$, giungiamo a:
    ${\begin{aligned}y&={\frac {c_{1}\dots c_{m}\cdot 10^{n+p}+b_{1}\dots b_{p}\cdot 10^{n}+a_{1}\dots a_{n}-c_{1}\dots c_{m}\cdot 10^{p}-b_{1}\dots b_{p}}{99\dots 9\cdot 10^{p}}}=\\&={\frac {c_{1}\dots c_{m}b_{1}\dots b_{p}a_{1}\dots a_{n}-c_{1}\dots c_{m}\,b_{1}\dots b_{p}}{99\dots 9\cdot 10^{p}}}.\end{aligned}}$
Quindi per ricostruire la frazione che genera il corrispondente numero periodico si riscrive quest'ultimo come numero intero e gli si sottrae il numero intero formato dalle cifre che si trovano prima della parte periodica. Il risultato di questa operazione va poi diviso per un numero intero composto da un numero di nove pari alla lunghezza del periodo e un numero di zeri pari al numero di cifre decimali che precedono l'inizio della parte periodica.

### Casi particolari

Se si prova a convertire un numero decimale periodico semplice il cui periodo è 9 in frazione generatrice, dividendo il numeratore per il denominatore della frazione generatrice ottenuta si avrebbe come risultato un numero intero anziché il numero decimale periodico semplice di partenza. Ad esempio trasformando il numero periodico semplice 400,9 nella sua frazione generatrice si otterrebbe (4009-400)/9 = 3609/9 il cui risultato sarebbe 401 anziché 400,9. Questo perché in matematica, la notazione decimale periodica 0,999... denota il numero reale 1. In altre parole, le notazioni "0,999…" e "1" rappresentano lo stesso numero reale (per convincersene basta partire dall'uguaglianza 0,3=1/3: moltiplicando per 3 si ottiene 0,9=1).

### Dimostrazione alternativa

Una dimostrazione alternativa alla precedente, leggermente più informale, ma ugualmente valida, è la seguente.
Sia
    $x=c_{1}c_{2}\dots c_{m},b_{1}b_{2}\dots b_{p}{\overline {a_{1}a_{2}\dots a_{n}}}$
un generico numero decimale periodico. Moltiplicando per $10^{p}$ si toglie l'antiperiodo
    $10^{p}x=c_{1}c_{2}\dots c_{m}b_{1}b_{2}\dots b_{p},{\overline {a_{1}a_{2}\dots a_{n}}}.$
Moltiplicando per $10^{n}$ si porta "un periodo" prima della virgola, lasciando invariata la parte dopo la virgola
    $10^{n}10^{p}x=c_{1}c_{2}\dots c_{m}b_{1}b_{2}\dots b_{p}a_{1}a_{2}\dots a_{n},{\overline {a_{1}a_{2}\dots a_{n}}}.$
Sottraendo membro a membro le ultime due uguaglianze si ha
    $(10^{n}-1)10^{p}x=c_{1}c_{2}\dots c_{m}b_{1}b_{2}\dots b_{p}a_{1}a_{2}\dots a_{n}-c_{1}c_{2}\dots c_{m}b_{1}b_{2}\dots b_{p}$
dove le cifre dopo la virgola del numero al membro di destra sono ora tutte uguali a 0. Da questo segue che
    $x={\frac {c_{1}c_{2}\dots c_{m}b_{1}b_{2}\dots b_{p}a_{1}a_{2}\dots a_{n}-c_{1}c_{2}\dots c_{m}b_{1}b_{2}\dots b_{p}}{(10^{n}-1)10^{p}}}.$
Ora ricordando che $10^{n}-1=\underbrace {99\dots 9} _{n}$, si ha la tesi.

### Algoritmo

Il seguente programma in Python 3 applica il metodo descritto ad uno o più numeri in formato stringa (intero, decimale, o decimale con periodo tra parentesi nello stesso formato restituito dal programma nella sezione seguente) restituendo in stringhe le frazioni equivalenti semplificate.

## Numero decimale periodico da una frazione

Per calcolare un numero periodico a partire da una frazione occorre eseguire una divisione decimale tra numeratore e denominatore, che si dovrà interrompere solo quando si otterrà come resto un valore già individuato in una delle divisioni precedenti: a questo punto infatti, calcolando le successive cifre decimali, non si farà altro che ripetere le stesse divisioni eseguite in precedenza fino ad ottenere di nuovo lo stesso resto, e questa sequenza di calcoli si ripeterà all'infinito. Si può quindi terminare la divisione decimale ed individuare le cifre del periodo e dell'antiperiodo in base alla posizione dei resti coincidenti.
Questo algoritmo può essere eseguito da un programma per dividere perfettamente (evitando quindi qualunque errore di approssimazione) due numeri qualsiasi in breve tempo. Un esempio della sua applicazione in Python:

## Il caso del numero periodico 0,(9)

Per calcolare il numero periodico semplice $0{,}999999999\dots$ rappresentabile con $0{,}{\bar {9}}$ occorre, come tutti i numeri periodici:
* scrivere il periodo $9;$
* scrivere la cifra 9 come dividendo, in quanto il periodo è formato da una sola cifra;
* si ottiene $9/9$ che è uguale a $1$.
Una dimostrazione che l'allineamento decimale $0{,}{\bar {9}}$ rappresenta la stessa quantità indicata dal numero $1$ è la seguente:
    ${\begin{aligned}x&=0{,}{\bar {9}}\\10x&=9{,}{\bar {9}}\\10x-x&=9{,}{\bar {9}}-0{,}{\bar {9}}\\9x&=9\\x&=1.\end{aligned}}$

## Numeri periodici in altre basi

Numeri periodici compaiono anche se, al posto della base 10, consideriamo un'altra base di numerazione per rappresentare i numeri. In generale, in base a, i numeri che diventano periodici sono precisamente quelli che, se rappresentati mediante una frazione i cui termini siano coprimi, hanno un denominatore che contiene fattori primi che non dividono a.

### Numeri periodici in base 2

In base 2 i numeri periodici non possono avere periodo di lunghezza 1. Infatti tale periodo potrebbe essere composto solo di cifre 0, e non ha senso parlare di zero periodico; oppure di cifre 1: in questo caso si replica il caso del 9 periodico nei numeri decimali, con il risultato che (in base 2) il numero 0,(1) = 1.