Discussione:Numero decimale periodico
L'algoritmo in python in questa voce mi sembra decisamente fuori luogo, forse sarebbe meglio un algoritmo espresso in pseudolinguaggio. WindowsUninstall
numero periodico 0,9
[modifica wikitesto]scusate,sono ancora un ragazzino e non so se io abbia sbagliato.Non sono d'accordo che il il numero periodico 0,9 valga 1 come numero naturale, ma che valga 1 come intero.Infatti se facciamo la stessa operazione(quella di moltiplicare x per dieci e poi togliere una volta x) con un'altro numero ad esempio 0,6 periodico otterremmo sempre uno.Percio ritengo che lo 0,9 peridico non valga 1 come numero naturale, ma 1 come intero.
---
La dimostrazione che è data in questa pagina è probabilmente la più naïve. Esistono dimostrazione matematiche molto più rigorose, Wikipedia inglese ha una pagina molto più dettagliata, alla quale ti rimando: http://en.wikipedia.org/wiki/0.999... Gould80 (msg) 15:45, 8 apr 2011 (CEST)
algoritmo in python
[modifica wikitesto]Anch'io credo sia più opportuno, per motivi di leggibilità, proporre un algoritmo generale in pseudo codice piuttosto che in un linguaggio specifico
Scusate la pignoleria...
[modifica wikitesto]Non vorrei sembare eccessivamente pignolo (non ne vedo il motivo, ma qualcuno potrebbe pensarlo): scrivere 8,5=85 è un'offesa alla matematica. A mio parere, sarebbe preferibile il segno "consegue che" (⇒), anche se non totalmente appropriato.
Sono d'accordo, mi sembrava un errore abbastanza grave ed ho modificato il testo in , meno intuitivo, ma resta coerente con i passaggi successivi; trovo il "consegue che" sbagliato in assenza di ipotesi e tesi.
-- Daniele
1/3 irrazionale ?
[modifica wikitesto]sezione Algoritmi:
Ad esempio 1/10 = 0,1 è finito perché 2, 5 e 10 sono contenuti in 10; 1/3 = 0,33333... è irrazionale perché 3 non è contenuto nella base 10
Lapsus calami, non irrazionale ma illimitato !
Sezione poco chiara
[modifica wikitesto]Ho eliminato una sezione inserita un annetto fa, perché non sufficientemente chiara per una enciclopedia. Riporto sotto. Ylebru dimmela 17:41, 7 feb 2011 (CET)
Algoritmi PARI/GP per periodo e antiperiodo di un numero decimale periodico
[modifica wikitesto]Ricordiamo che il risultato di una frazione può dare: periodo nullo o finito (numero finito), periodo infinito e, infine, presenza di antiperiodo e periodo. Se al denominatore ci sono 2 e 5 o potenze di essi o combinazioni (perché fattori primi della numerazione per 10), avremo a che fare con un numero finito.
Si definisce "gaussiano del numero N rispetto ad una base B", indicato come k = g(N) = T(1/N), il più piccolo valore k tale che B^k = 1 mod N.
Si dimostra che il gaussiano k di un rapporto a/N dipende solo dal denominatore N, quindi nel calcolo del gaussiano si può porre a=1 e considerare la frazione 1/N.
Un teorema che deriva dal Piccolo Teorema di Fermat porta a dire anche che il gaussiano di n è un divisore della funzione di Eulero φ(N). In particolare se N è primo è φ(N) = N – 1.
Anche l'antiperiodo dipende esclusivamente dal denominatore della frazione a/N. Per cui il numeratore può tranquillamente essere a=1.
L'antiperiodo conta il numero di cifre antecedenti il periodo.
Da cosa dipende l'antiperiodo ed il periodo? È lo stesso che chiedere: "In quali casi una frazione si trasforma in un numero decimale limitato o illimitato, periodico semplice o periodico misto?"
La periodicità, nulla, finita o infinita non è una proprietà del numero N del denominatore della frazione, ma dipende dalla base numerica B che si considera (decimale, ottale, etc) e dai fattori primi di cui è costituito il denominatore N della frazione.
Ad esempio 1/10 = 0,1 è finito perché 2, 5 e 10 sono contenuti in 10; 1/3 = 0,33333... è illimitato periodico perché 3 non è contenuto nella base 10.
L'antiperiodo quindi è il valore massimo max(h,k) tra gli esponenti delle potenze di 2h e 5k; in altri termini conta il numero di volte che si presenta il divisore 2 o 5 nel numero .
GaussN(n)= local(g=0, r=1); {
while( Mod(n,2) == 0, n = n/2;); while( Mod(n,5) == 0, n = n/5;); while( g == 0 | r != 1, r = Mod(( 10 * r), n); g = g + 1; ); return(g);
}
AntPerN(n)= local(d2=0, d5=0); {
while( Mod(n,2) == 0, n = n/2; d2=d2+1); while( Mod(n,5) == 0, n = n/5; d5=d5+1); return(max(d2,d5));
}