Parte intera: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m sistemazione fonti, smistamento lavoro sporco e fix vari
 
(25 versioni intermedie di 16 utenti non mostrate)
Riga 1:
{{F|analisi matematica|luglio 2017}}
{{Nota disambigua|il [[prenome|nome proprio di persona]]|[[Flora (nome)]] '''e''' [[Fiorenzo]]|Floor}}
[[File:Floor function.svg|thumb|right|La funzione parte intera]]
In [[matematica]], la funzione '''parte intera''', nota anche come funzione '''floor''' (dalla parola [[lingua inglese|inglese]] ''floor'' che significa "pavimento"), è la [[funzione (matematica)|funzione]] che associa ad ogni [[numero reale]] ''<math>x''</math> il più grande [[numero intero|intero]] minore o uguale a ''<math>x''</math>. La funzione parte intera è solitamente indicata con <math>\lfloor x \rfloor</math> o <math>[x] </math>.
 
La [[funzione mantissa]], definita come <math>x -\lfloor x\rfloor</math>, anche scritta come ''<math>x''&nbsp;</math> [[aritmetica modulare|mod]]&nbsp; 1, oppure <math>\{''x''\}</math>, è chiamata la '''parte frazionaria''' di ''<math>x''</math>. Ogni [[frazione (matematica)|frazione]] ''<math>x''</math> può essere scritta come un numero misto, cioè la somma di un intero e una [[frazione (matematica)|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
::<math> \lfloor x \rfloor=\max\, \{k\in\mathbb{Z} : k\le x\},</math>
::<math> \lfloor x \rfloor \le x < \lfloor x \rfloor + 1,</math>
:con l'uguaglianza nella parte sinistra che vale [[se e solo se]] ''<math>x''</math> è un intero.
* La funzione parte intera è [[idempotenza|idempotente]]:
: :<math>\lfloor\lfloor x\rfloor\rfloor=\lfloor x\rfloor.</math>.
* Per ogni intero ''<math>k''</math> e ogni numero reale ''<math>x''</math>,
::<math> \lfloor k + x \rfloor = \lfloor k+\lfloor x\rfloor+ x-\lfloor x\rfloor \rfloor .</math>
* Per ogni <math>x</math> e <math>y</math> reali,
:Ora se <math> x \in \mathbb{Z}</math>, <math> x-\lfloor x\rfloor = 0</math> e quindi <math> \lfloor k+\lfloor x\rfloor+ x-\lfloor x\rfloor \rfloor = k+\lfloor x\rfloor</math>
:Invece se :<math>\lfloor x \inpm y \mathbb{R\smallsetminusrfloor Z}</math>,= <math> x-\lfloor x \rfloor \notinpm \mathbb{Z}</math>lfloor ey <math>\rfloor x+ -\lfloor x \rfloorpm <1</math>y concludendo che <math>- \lfloor k+\lfloorx x\rfloor+ x-\lfloormp x\rfloorlfloor y \rfloor = k+\lfloor x\rfloor.</math>
* Per ogni numerointero reale<math>k</math> none interoogni ''x''numero sireale ha:<math>x</math>,
::<math>\lfloor -xkx \rfloor =- k \lfloor x \rfloor + \lfloor kx -1, k\lfloor x \rfloor \rfloor.</math>
::
* L'ordinario [[arrotondamento]] di un numero ''x'' all'intero più vicino può essere espresso come <math>\lfloor x + 0.5 \rfloor</math>.
* Per ogni <math>x</math> e <math>y</math> reali,
*La funzione parte intera non è [[funzione continua|continua]], ma è [[funzione semi-continua|semi-continua]]. Essendo una [[funzione costante]] a tratti , la sua [[derivata]] è zero quando esiste, cioè per tutti i valori che non sono interi.
:Ora se :<math>\lfloor xxy \inrfloor \mathbb{Z}</math>,= <math> x-\lfloor x \rfloor =\lfloor 0</math> e quindi <math>y \lfloorrfloor k+ \lfloor x\rfloor+xy x- \lfloor x \rfloor \rfloorlfloor =y k+\lfloorrfloor x\rfloor.</math>
* Se ''x'' è un numero reale e ''n'' un intero, si ha ''n'' ≤ ''x'' se e solo se ''n'' ≤ floor(''x''). 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.
::
* Per ogni numero reale non intero <math>x</math> si ha:
::<math>\lceillfloor -x\rceilrfloor=-\lfloor x\rfloor=-1.</math>
* L'ordinario [[arrotondamento]] di un numero ''<math>x''</math> all'intero più vicino può essere espresso come <math>\lfloor x + 0.,5 \rfloor</math>.
* La funzione parte intera non è [[funzione continua|continua]], ma è [[funzione semi-continua|semi-continua]]. Essendo una [[funzione costante]] a tratti , la sua [[derivata]] è zero quando esiste, cioè per tutti i valori che non sono interi.
* Se ''<math>x''</math> è un numero reale e ''<math>n''</math> un intero, si ha ''<math>n''\le ≤ ''x''</math> se e solo se ''<math>n''\le \lfloor floor(''x'')\rfloor.</math> 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 [[Numero naturale|numeri naturali]] in due sequenze tramite la funzione floor.
 
== Parte intera superiore ==
[[ImmagineFile:Ceiling function.svg|thumb|right|La funzione ceilingceil()]]
Una funzione strettamente correlata è la '''parte intera superiore''', nota anche come funzione '''ceilingceil''' (dalla parola [[lingua inglese|inglese]] ''ceiling'' che significa "soffitto", contrapposta a ''floor'', "pavimento"), definita nel modo seguente: per ogni numero reale <math>x</math>, ceil(<math>x</math>) è il più piccolo intero non minore di <math>x</math>. Per esempio, ceil(2,3) = 3, ceil(2) = 2 e ceil(−2,3) = -2. La funzione ceiling è anche indicata con <math>\lceil x \rceil</math>. È facile provare che
 
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 <math>\lceil x \rceil</math>.
È facile provare che
:<math>\lceil x \rceil = - \lfloor - x \rfloor</math>
 
e che
 
:<math>x \leqle \lceil x \rceil < x + 1.</math>
 
Se poi ''x'' non è un intero si ha
 
:<math>\lceil x\rceil-\lfloor x\rfloor=1</math>
:<math>\lceil x\rceil-\lfloor x\rfloor=1.</math>
 
Per ogni intero ''k'', abbiamo anche che:
: <math>\lfloor k / 2 \rfloor + \lceil k / 2 \rceil = k</math>.
 
: <math>\lfloor k / 2 \rfloor + \lceil k / 2 \rceil = k.</math>.
Se ''m'' e ''n'' sono interi positivi [[interi coprimi|primi fra di loro]], allora
:<math>\sum_{i=1}^{n-1} \lfloor im / n \rfloor = (m - 1) (n - 1) / 2</math>
 
Se ''m'' e ''n'' sono interi positivi [[interi coprimi|primi fra di loro]], allora
== In programmazione ==
 
:<math>\sum_{i=1}^{n-1} \lfloor im / n \rfloor = (m - 1) (n - 1) / 2.</math>
[[Immagine:Int function.svg|thumb|right|L'operatore <code>(int)</code>]]
 
== In programmazione ==
[[ImmagineFile:Int function.svg|thumb|right|L'operatore <code>(int)</code>]]
 
=== In C ===
Praticamente tutti i [[linguaggio di programmazione|linguaggi di programmazione]] forniscono al programmatore la possibilità di [[conversione di tipo|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 (linguaggio)|C]], questo è reso possibile dall'[[operatore (informatica)|operatore]] di casting <code>(int)</code>. Questa operazione è un misto delle funzioni floor e ceiling: per ''x'' positivi o nulli, restituisce floor(''x''), e per ''x'' negativi restituisce ceilingceil(''x'').
 
La stessa sintassi funziona con numerosi altri linguaggi, soprattutto quelli derivati dal C, come [[Java (linguaggio di programmazione)|Java]] e [[Perl]], così come la funzione [[POSIX]] floor().
 
=== Problemi di arrotondamento ===
{{vedi anche|arrotondamento}}
L'uso dell'arrotondamento può generare effetti imprevisti e che vanno contro quello che l'intuito suggerirebbe. Per esempio, <code>(int)(0.,6/0.,2)</code> 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 <code>(int)</code> converte tranquillamente al valore 2.
 
A causa di questi problemi, la maggior parte delle [[calcolatrice|calcolatrici]] moderne usa internamente il [[Binary-coded decimal|sistema numerico decimale codificato in binario]].
 
== Distribuzione uniforme modulo 1 ==
Se ''<math>x''</math> è un numero irrazionale, allora le parti frazionarie ''<math>nx'' mod\bmod 1</math>, dove ''<math>n''</math> varia fra gli interi positivi, sono distribuite uniformemente nell'[[intervallo (matematica)|intervallo aperto]] <math>(0,1)</math>. Questa affermazione può essere resa più precisamente in molti modi, uno dei quali afferma:
:<math>\int_0^1 f(t)\; dt = \lim_{N\to\infty} \frac{1}{N}\sum_{n=1}^N f(nx \;\operatorname{mod}\; 1)</math>
per ogni [[funzione continua]] a [[numero reale|valori reali]] <math>f:[0,1]\to\mathbb{R}</math> (vedi [[limite (matematica)|limite]], [[integrale]] e [[teorema dell'equidistribuzione]])
 
:<math>\int_0^1 f(t)\; dt = \lim_{N\to\infty} \frac{1}{N}\sum_{n=1}^N f(nx \;\operatorname{mod}\;bmod 1),</math>
Seguendo il principio generale dell'[[approssimazione diofantea]] scoperto da [[Hermann Weyl]], questa proprietà è equivalente a qualcosa che è molto più facile da controllare: ovvero che le somme
 
per ogni [[funzione continua]] a [[numero reale|valori reali]] <math>f:\colon [0,1]\to\mathbb{R}</math> (vedisi vedano [[limite (matematica)|limite]], [[integrale]] e [[teorema dell'equidistribuzione]]).
:<math>\sum\limits_{n=0}^N e^{2 \pi i k n x}</math>
 
Seguendo il principio generale dell'[[approssimazione diofantea]] scoperto da [[Hermann Weyl]], questa proprietà è equivalente a qualcosa che è molto più facile da controllare: ovveroossia che le somme
per <math>k\in\mathbb{N}</math> sono [[O-grande|O(N)]]. Poiché sono [[progressione geometrica|progressioni geometriche]], questo può essere provato in maniera abbastanza diretta. La condizione che ''x'' sia irrazionale implica che
 
:<math>\sinsum\limits_{n=0}^N e^{2 \pi i k xn \ne 0.x},</math>
 
per <math>k\in\mathbb{N}</math> sono [[O-grande|O(N)]]. Poiché sono [[progressione geometrica|progressioni geometriche]], questo può essere provato in maniera abbastanza diretta. La condizione che ''<math>x''</math> sia irrazionale implica che
 
:<math>\sum\limits_{n=0}^N e^{2sin (\pi i k nx) x}\ne 0.</math>
 
== Troncamento ==
Riga 86 ⟶ 97:
 
{{Portale|matematica}}
 
[[Categoria:Funzioni matematiche]]