Newsgroup: it.comp.lang.javascript
Titolo: [Zuper] --- zuper calcolatrice







 








Calcola Radici 
            Quadrate :


 






 




 




 


 


 


 


 


 




Calcola Potenze : 
            numero =


 






 


esponente =


 






 




 





















'ngora?
:)
Cmq ti sei dimenticato che 0^0 non fa 1, in quanto
l'operazione in sé non ha significato
matematico...
:)
Bye.
Ðarius-

...

E ci hai ragione , me so scordato ........ te la ho riaggiustata ....

 >
Errore: l'operazione 0^0 non è possibile, ma PER DEFINIZIONE 0^0=1
(controllate pure sui vostri libri di analisi, se non ci credete. E se non
ci credete, fatti vostri, tanto E' una definizione, quindi E' così e basta)
ciao ciao
enrico
--
--------------------------------------
mailto:
kiko...@libero.it
ourSyte(comunitàArgonauti): 
http://clanargonauti.freeweb.org
ourSyte.mirror:                      
http://web.tiscalinet.it/clanargonauti
(Qualcuno ci vada e ci faccia un po' di preo...)
--------------------------------------

> Errore: l'operazione 0^0 non č possibile, ma PER DEFINIZIONE 0^0=1
0^0=1 ?!?
Forse faresti meglio a ricontrollarlo bene il libro di analisi...
Per definizione un qualsiasi numero elevato alla zero č uno, tranne 0^0 che
non č determinato.

Beh, comunque abbiamo scoperto una bella falla di JavaScript:
Math.pow(0,0) = 1 !
Davvero assurdo!
0^0 è notoriamente una forma indeterminata (parola del libro di analisi
sotto agli occhi, la mia memoria non mi ingannava). Anche le due
calcolatrici scientifiche che ho a casa mi danno ragione, restituendo -
error - quando tento di eseguire l'operazione.
A quanto pare per JavaScript 0^0 fa invece 1!

 ourSyte(comunitŕArgonauti): 
http://clanargonauti.freeweb.org


Oppure, più rigorosamente:
a^b = c
ln (a^b) = ln c
b  ln a = ln c
cioè
c = e^(b ln a)
se a = b = 0 si ha che
a^b = 0^0 = e^(0 ln 0)
Vi riocordo però che ln è definito solo per a > 0
Dunque la forma non è determinata.

 Davvero assurdo!
Beh, come limite č anche giusto, ad ogni modo non
č nemmeno una falla di Javascript, in quanto la
funzione pow(0,0) proprio secondo gli standard
ANSI deve ritornare espressamente 1...
--
Bye.
Šarius.

mmm, però è strano questo, insomma...
0^0 è un'operazione non definita, non solo per quanto concerne i limiti,
prova con una calcolatrice scientifica se non credi. Più sotto poi trovi due
post (uno mio e l'altro di Hyperion) contenenti valide dimostrazioni del
fatto che 0^0 è indeterminata. Il mio libro di analisi, poi, conferma in
pieno, e non mi azzardo a dargli torto!
Mi sembra strano che gli standard ANSI contengano un così grossolano
errore...

 cerchero' un'altra donna dentro ai sogni di Tarzan...

Infatti, pure la calcolatrice di Windows! Ah ah ah!


No, anche lei ... HA HA HA HA HA ...

 errore...
Al di là del fatto che si tratti di errori o meno,
queste situazioni si rifanno del tutto agli
standard IEEE 754 del floating point su cui sono
basati tutti i nostri coprocessori matematici da
anni.
Tutte le funzioni che gestiscono il floating
point, comprese quindi quelle della libreria Math
del Javascript, si comportano dunque nel seguente
modo, indipendentemente da cosa dicano i libri di
matematica:
    x/0 =±inf
    log(0) =-inf
    inf+inf =inf
    0^0 =1
    inf-inf= NaN
    inf/inf = NaN
    inf*0=NaN
    0/0 = NaN
    sin(inf)= NaN
    sqrt(x<0)= NaN
    log(x<0)= NaN
etc...
un'apparente eccezzione, invece si ha in:
    tan(PI/2)
che non ritorna infinito perché si può avere
solamente un'approssimazione di PI/2. Il risultato
sarà pertanto un numero molto grande ma sempre
finito...
Bye.
Ðarius-

 proprio io il problema... :)
Si, hai ragione, mi sono espresso male io, mi riferivo alla questione del
pow insomma.
Ma secondo te perché dovrebbe esserci questo errore nelle definizioni?
La logica non ci direbbe 0^0 = NaN?
Ora mi sto divertendo a sperimentare con tutti i linguaggi.

 wrote in message
88ekne$eie$1...@nslave1.tin.it...
| > So bene che 0^0 č un'operazione non definita
in
| > matematica e conoscevo entrambe le
dimostrazioni,
| > grazie. Non capisco perché non dovrei
crederci,
| > perň, visto che in fin dei conti ho fatto
presente
| > proprio io il problema... :)
|
| Si, hai ragione, mi sono espresso male io, mi
riferivo alla questione del
| pow insomma.
| Ma secondo te perché dovrebbe esserci questo
errore nelle definizioni?
| La logica non ci direbbe 0^0 = NaN?
Beh, giustamente se consideriamo secondo gli
standard che 0^0= exp(0*ln(0))
ne viene fuori exp(0*-inf)
ma 0*-inf=NaN,
quindi exp(NaN)=NaN.
Anche se consideriamo 0^0= 0^a/0^a
ne viene 0/0
che fa di nuovo NaN.
Ecco invece un template della funzione pow() per i
tipi riconducibili agli interi, presa dal Math.h:
template<class _Ty> inline
 _Ty _Pow_int(_Ty _X, int _Y)
 {unsigned int _N = _Y; // sic
 if (_Y < 0)
  _N = -_N;
 for (_Ty _Z = _Ty(1); ; _X *= _X)
  {if ((_N & 1) != 0)
   _Z *= _X;
  if ((_N >>= 1) == 0)
   return (_Y < 0 ? _Ty(1) / _Z : _Z); }}
da cui, se scorri il programma, si vede che 0^0
ritorna proprio 1 per scelta...
Il motivo di tutto ciň?
Probabilmente ci sono molte applicazioni in cui
imporre 0^0=1 conviene piů che gestire una
situazione indeterminata... ad ogni modo
riprenderei la discussione su it.scienza
matematica. Magari sapranno farsene una ragione...
:))
| Ora mi sto divertendo a sperimentare con tutti i
linguaggi.
Hehe... se ti interessa, persino il caro vecchio
gwbasic per 0^0 dava 1. Per Ln(0), invece,
restituiva un errore... :)
Alla prox.
Đarius.

dove sia indicato che 0^0=1, così che possa rafforzare la mia tesi??
Devo confessarti con sorpresa che non ho trovato neanche un libro in cui
venga definito 0^0=1. Tutti definiscono a^0=1 per a reale diverso da 0.
Cio' non mi mette affatto in imbarazzo, perche' penso di avere sostanziato
sufficientemente le mie motivazioni.
C'e' soltanto un fatto di comodita'. Spesso nei libri si definisce prima
A^n (cioe' A^n = (A A ... A) n volte) per n naturale positivo e A reale
qualsiasi, e poi A^n per n intero qualsiasi (incluso il caso n=0); dato
che, per n intero negativo, A deve necessariamente essere diverso da zero,
si estende quest'ipotesi anche al caso n=0, solo per non mettersi a
distinguere due casi diversi e, soprattutto, per evitare di specificare che
le successive proprieta' delle potenze ad esponente intero valgono in
generale per basi diverse da zero (vedi ad esempio le precisazioni che io
faccio a pagina 2.69).
Si tratta quindi, come sempre, di un fatto di scelta e di gusto da parte
del singolo autore.
Cio' che e' comunque SICURO e' che nessun libro di analisi dice che "0^0 e'
indeterminato"...; 0^0 o lo definisci (necessariamente = 1), oppure non lo
definisci.
***********
".
Chiara la differenza?
--------------------------------------
mailto:
kiko...@libero.it
ourSyte(comunitàArgonauti): 
http://clanargonauti.freeweb.org


Pregiatissimo.
Solo attento a una cosa: più la matematica si avvicina alla filosofia più le
voci sono spesso discordanti.
Esistono "dimostrazioni" (tra virgolette perché dimostrare "come estensione
per continuità" non è una vera dimostrazione matemativa) simili che ti
portano alla conclusione contraria.
Quanto sotto si può dimostrare più matematicamente per assurdo, ma c'è chi
dice che anche le dimostrazioni per assurdo non sono vere dimostrazioni
matematiche.

 Chiara la differenza?
A me si...
Ma allora anche le due calcolatrici scientifiche che ho in casa (sharp e la
mitica T68) sono ignoranti e hanno studiato "Pani 'ca meusa College"? Oppure
sono i modelli per i liceali?
Se c'è una cosa che non sopporto sono i professori che si danno le arie.
Io ho avuto la fortuna di averne avuti pochi così, ma quei pochi li ho
veramente odiati.