Parte intera
# Parte intera

In matematica, la funzione parte intera, nota anche come funzione floor (dalla parola inglese floor che significa "pavimento"), è la funzione che associa ad ogni numero reale $x$ il più grande intero minore o uguale a $x$. La funzione parte intera è solitamente indicata con $\lfloor x\rfloor$ o $[x]$.

La funzione mantissa, definita come $x-\lfloor x\rfloor$, anche scritta come $x$ mod 1, oppure $\{x\}$, è chiamata la parte frazionaria di $x$. Ogni frazione $x$ può essere scritta come un numero misto, cioè la somma di un intero e una frazione propria. La funzione floor e la funzione parte frazionaria estendono questa decomposizione a tutti i numeri reali.

## Proprietà

Qualche proprietà della funzione parte intera

* Si ha

    $\lfloor x\rfloor =\max \,\{k\in \mathbb {Z} :k\leq x\}$
    $\lfloor x\rfloor \leq x<\lfloor x\rfloor +1$
    con l'uguaglianza nella parte sinistra che vale se e solo se $x$ è un intero.
* La funzione parte intera è idempotente:

    $\lfloor \lfloor x\rfloor \rfloor =\lfloor x\rfloor$.
* Per ogni intero $k$ e ogni numero reale $x$,

    $\lfloor k+x\rfloor =k+\lfloor x\rfloor .$
* Per ogni numero reale non intero $x$ si ha:

    $\lfloor -x\rfloor =-\lfloor x\rfloor -1,$
* L'ordinario arrotondamento di un numero $x$ all'intero più vicino può essere espresso come $\lfloor x+0,5\rfloor$.
* La funzione parte intera non è continua, ma è semi-continua. Essendo una funzione costante a tratti , la sua derivata è zero quando esiste, cioè per tutti i valori che non sono interi.
* Se $x$ è un numero reale e $n$ un intero, si ha $n\leq x$ se e solo se $n\leq \lfloor x\rfloor .$ In linguaggio ricercato, la funzione parte intera fa parte di una connessione di Galois; è l'aggiunta superiore della funzione che immerge gli interi nei reali.
* Usando la funzione floor, si possono produrre diverse formule per calcolare i numeri primi che sono esplicite ma non utilizzabili nella pratica.
* Il teorema di Beatty afferma che ogni numero irrazionale partiziona i numeri naturali in due sequenze tramite la funzione floor.

## Parte intera superiore

Una funzione strettamente correlata è la parte intera superiore, nota anche come funzione ceiling (dalla parola inglese ceiling che significa "soffitto", contrapposta a floor, "pavimento"), definita nel modo seguente: per ogni numero reale $x$, ceiling($x$) è il più piccolo intero non minore di $x$. Per esempio, ceiling(2,3) = 3, ceiling(2) = 2 e ceiling(−2,3) = −2. La funzione ceiling è anche indicata con $\lceil x\rceil$. È facile provare che

    $\lceil x\rceil =-\lfloor -x\rfloor$

e che

    $x\leq \lceil x\rceil <x+1$

Se poi x non è un intero si ha

    $\lceil x\rceil -\lfloor x\rfloor =1$

Per ogni intero k, abbiamo anche che:

    $\lfloor k/2\rfloor +\lceil k/2\rceil =k$.

Se m e n sono interi positivi primi fra di loro, allora

    $\sum _{i=1}^{n-1}\lfloor im/n\rfloor =(m-1)(n-1)/2$

## In programmazione

### In C

Praticamente tutti i linguaggi di programmazione forniscono al programmatore la possibilità di convertire un valore di un certo tipo di dato in un valore di un altro tipo. Nello specifico, questo rende possibile convertire valori decimali (che vengono tipicamente rappresentati in virgola mobile) in numeri interi (di solito rappresentato come complemento a due).

Nel linguaggio di programmazione C, questo è reso possibile dall'operatore di casting (int). Questa operazione è un misto delle funzioni floor e ceiling: per x positivi o nulli, restituisce floor(x), e per x negativi restituisce ceiling(x).

La stessa sintassi funziona con numerosi altri linguaggi, soprattutto quelli derivati dal C, come Java e Perl, così come la funzione POSIX floor.

### Problemi di arrotondamento

L'uso dell'arrotondamento può generare effetti imprevisti e che vanno contro quello che l'intuito suggerirebbe. Per esempio, (int)(0,6/0,2) restituisce il valore 2 nella maggior parte delle implementazioni del C, anche se matematicamente è 0,6/0,2 = 3.

Questo problema è dovuto al fatto che i computer lavorano internamente con il sistema numerico binario e non è possibile rappresentare i numeri 0,6 e 0,2 con stringhe binarie di lunghezza finita. Più in generale: i computer non lavorano mai direttamente con un certo numero decimale, ma solo con una sua approssimazione. Nell'esempio, quindi, il risultato viene calcolato come 2,999999999999999555910790149937, che l'operatore (int) converte tranquillamente al valore 2.

A causa di questi problemi, la maggior parte delle calcolatrici moderne usa internamente il sistema numerico decimale codificato in binario.

## Distribuzione uniforme modulo 1

Se $x$ è un numero irrazionale, allora le parti frazionarie $nx{\bmod {1}}$, dove $n$ varia fra gli interi positivi, sono distribuite uniformemente nell'intervallo aperto $(0,1)$. Questa affermazione può essere resa più precisamente in molti modi, uno dei quali afferma:

    $\int _{0}^{1}f(t)\;dt=\lim _{N\to \infty }{\frac {1}{N}}\sum _{n=1}^{N}f(nx{\bmod {1}}),$

per ogni funzione continua a valori reali $f\colon [0,1]\to \mathbb {R}$ (vedi limite, integrale e teorema dell'equidistribuzione).

Seguendo il principio generale dell'approssimazione diofantea scoperto da Hermann Weyl, questa proprietà è equivalente a qualcosa che è molto più facile da controllare: ossia che le somme

    $\sum \limits _{n=0}^{N}e^{2\pi iknx},$

per $k\in \mathbb {N}$ sono O(N). Poiché sono progressioni geometriche, questo può essere provato in maniera abbastanza diretta. La condizione che $x$ sia irrazionale implica che

    $\sin \pi kx\neq 0.$

## Troncamento

Mentre la funzione parte intera genera solamente numeri interi, il troncamento, cioè il "tagliare fuori le cifre", può essere effettuato a qualsiasi posizione specificata, non solo dopo la cifra delle unità.

## Notazione

Le funzioni parte intera superiore e inferiore sono normalmente indicate con parentesi quadre, chiuse e aperte, in cui le linee orizzontali superiori (per la funzione parte intera inferiore, floor) o inferiori (per la funzione parte intera superiore, ceiling) sono mancanti. Per esempio nel sistema di composizione editoriale LaTeX questi simboli possono essere realizzati con i comandi \lfloor, \rfloor, \lceil e \rceil.

