Perché 0 ^ 0 nel calcolatore macOS e iOS fornisce risultati diversi su versioni diverse?


17

Ho verificato il risultato di 0 ^ 0 nella calcolatrice su diverse versioni:

  • iOS 10.3 => 1
  • iOS 11.4 => Errore
  • macOS 10.12.6 => 1
  • macOS 10.13.5 => Non un numero

Qual è la ragione della differenza?


22
Allora dovrò attenermi a High Sierra, perché adoro il pane NaN ;-))
Tetsujin,


anche news.ycombinator.com/item?id=8502968 <(apple ha smesso di pubblicare la sua versione della libreria matematica libm)
don bright

3
Lo stai chiedendo per capire la matematica o stai chiedendo perché Apple ha cambiato più volte la sua interpretazione di 0 ^ 0? Se è il primo, c'è una risposta accettabile pubblicata; se quest'ultimo, allora potrebbe non essere necessariamente responsabile.
zr00,

Nella versione 10.11.6 il risultato è 1
Robert Kowal,

Risposte:


20

Mentre 0⁰ è generalmente indefinito, alcuni rami della matematica lo definiscono esplicitamente come 1 perché, come puoi vedere , questo è il valore a cui converge la funzione y (x) = xˣ in n = 0.

Meno formalmente, si noti che 0,5 0,5 = 0,707…; 0,2 0,2 = 0,725…; 0,1 0,1 = 0,794… e 0,01 0,01 = 0,955…. Mentre ti avvicini a 0, il risultato si avvicina a 1, il che rende abbastanza logico e utile definire 0 ^ 0 come 1 in alcuni casi .

Pertanto, nessuno di questi 3 risultati è di per sé errato e riflettono invece diverse convenzioni sul valore di questa espressione indefinita.

C'è un buon articolo di Wikipedia che spiega il problema. Vedi anche Zero alla potenza zero - è 0⁰ = 1? .


4
Intendi x = 0, non n = 0.
Ruslan,

2
Non ho mai incontrato quella particolare logica per l'impostazione 0 ^ 0 = 1. Dopotutto, x ^ y non ha limiti come (x, y) → (0,0). Tuttavia , se scrivi un polinomio generale nella forma ∑ c_n x ^ n, dove n nella somma varia da 0 a n (il grado del polinomio), diventa essenziale avere 0 ^ 0 = 1, altrimenti il ​​" termine "costante non è poi così costante. Vedi anche qui
Harald Hanche-Olsen l'

@ HaraldHanche-Olsen Questo è un punto molto approfondito, per favore considera di scrivere una risposta o sentiti libero di modificare il mio. La mia intuizione derivava dal fatto che la maggior parte delle funzioni nella forma e ^ {αx ^ β * ln ^ {ξx ^ γ + μ}} convergeranno in 1 (tranne β = 0 e forse in altri casi limite), e quella classe si riscontra spesso nelle applicazioni di ingegneria, ovvero il tipo di cose per cui le persone probabilmente useranno l'app calcolatrice, ma capisco che sia un po 'inverosimile.
undercat supporta Monica l'

3
Sebbene questa risposta fornisca una buona spiegazione di ciò che 0 ^ 0 è / potrebbe essere definito come, non spiega perché Apple abbia cambiato la sua interpretazione alcune volte.
zr00,

1
@DawoodibnKareem Il mio commento sopra, e più precisamente, la domanda referenziata su math.se, dovrebbe spiegare perché può essere utile avere 0 ^ 0 essere 1. Naturalmente, tale convenzione ha un prezzo: l'espressione x ^ y è discontinuo a (0,0).
Harald Hanche-Olsen,

13

La maggior parte delle implementazioni dell'aritmetica in virgola mobile segue lo standard IEEE 754-2008, che specifica che pow (0,0) restituisce 1 (vedere §9.2.1).

Ma definisce anche altre due funzioni: pown (0,0) = 1 e powr (0,0) = NaN.

Wikipedia lo riassume come segue :

Lo standard IEEE 754-2008 in virgola mobile viene utilizzato nella progettazione della maggior parte delle librerie in virgola mobile. Raccomanda una serie di operazioni per calcolare una potenza: [20]

pow considera 0 0 come 1. Se la potenza è un numero intero esatto, il risultato è lo stesso di pown, altrimenti il ​​risultato è come per powr (tranne alcuni casi eccezionali).

pown considera 0 0 come 1. Il potere deve essere un numero intero esatto. Il valore è definito per basi negative; ad esempio, pown (−3,5) è −243. powr considera 0 0 come NaN (Not-a-Number - non definito). Il valore è anche NaN per casi come powr (−3,2) in cui la base è inferiore a zero. Il valore è definito da epower × log (base).

La variante pow è ispirata alla funzione pow di C99, principalmente per la compatibilità. [21] È utile principalmente per le lingue con una singola funzione di alimentazione. Le varianti pown e powr sono state introdotte a causa dell'uso contrastante delle funzioni di potenza e dei diversi punti di vista (come indicato sopra). [22]

Naturalmente questo non ha alcuna influenza su quale sia il risultato matematico corretto: come altri hanno notato, esiste più di una possibile risposta e l'IEEE ha dovuto prendere una decisione arbitraria.


5

Qualcuno di Apple ha capito che 0 ^ 0 è un'operazione non valida e l'ha risolta.


5

Zero alla potenza dello zero è una contraddizione

  • 0 volte qualsiasi numero è 0
  • qualsiasi numero alla potenza 0 è 1

Si dovrebbe generare un errore. L'unico motivo per cui non viene visualizzato un errore è dovuto al fatto che la versione di Calculator in questione non ha intercettato questo errore di input.


9
Il matematico (molto arrugginito dilettante) vorrebbe sostenere che il limite di 0 ^ x è 0 quando x si avvicina a 0 e il limite di x ^ x è 1 quando x si avvicina a 0, quindi si ha una discontinuità che è la definizione stessa di Indeterminato e scalda il mio sentito vedere NaN sull'unico vero sistema operativo
bmike

1
scalda il mio sentito - immagini di tostate pecore calde che fanno problemi di calcolo con il loro Sheppard, @bmike :-D
Allan,

2
@MrLister "definito da alcuni autori e non definito da altri autori" è esattamente come funziona la matematica. In quasi tutti i contesti, 0 ^ 0 = 1 è la definizione corretta (ad es. È il numero di funzioni dall'insieme vuoto all'insieme vuoto). Il fatto che x ^ y non possa essere continuamente esteso all'origine è sfortunato ed è la ragione per cui alcuni educatori di analisi preferiscono lasciarlo indefinito per evitare confusione, ma anche loro devono prendere 0 ^ 0 = 1 una volta che arrivano a serie di potenze.
Eike Schulte,

3
@bmike Non è necessario comportare limiti. Solo perché x ^ y sarebbe discontinuo a (0, 0) non significa che non puoi assegnare un valore a 0 ^ 0
Dennis

3
0 ^ 0 = 1 è assolutamente non una contraddizione. 0 ^ 0 è un prodotto vuoto , quindi 1. 0 ^ 0 è la cardinalità dell'insieme di funzioni dall'insieme vuoto all'insieme vuoto e esiste esattamente una di queste funzioni . È necessario per i polinomi . L'elenco continua.
user76284

4

Esiste una semicontroversione circa 0⁰ che si riduce alla funzione x ^ y che ha una discontinuità in (x, y) -> (0,0). Questa è una semicontroversione poiché è una sciocchezza matematica proibire a una funzione che abbia un valore di discontinuità.

È pratica generale incorporare numeri interi nei reali in modo tale che una funzione definita sui reali corrisponda alla stessa funzione definita sui numeri interi ogni volta che la funzione reale assume valori integrali. Quindi ha poco senso distinguere 0,0 ^ 0 da 0,0 ^ 0,0.

Ora x⁰ con l'intero 0 come esponente è un prodotto che contiene esattamente zero fattori di x. Dal momento che nessun fattore di x è contenuto nel suo valore, non ha molto senso assegnargli un valore che dipende da x, e il suo valore come prodotto vuoto è abbastanza chiaramente 1, l'elemento neutro per la moltiplicazione.

Ciò ha anche senso poiché non limita arbitrariamente il teorema binomiale a valori diversi da zero. In un certo senso, questo è un argomento basato sul tentativo di completare sensibilmente la funzione x⁰ su x = 0, rendendola definita e continua ovunque.

Se proviamo questo con la funzione 0 ^ x invece, il limite in x = 0 + può essere 0, ma definirlo come tale non aiuta ancora a curare la discontinuità essenziale poiché la funzione non è definita per x negativa.

Ora i calcolatori tendono a calcolare x ^ y come exp (y * ln (x)). Naturalmente questa è una cattiva notizia per x = 0. Quindi tali valori devono essere programmati esplicitamente o si arriva a un numero non-. Per una programmazione esplicita, devi fare affidamento sull'intuizione matematica del programmatore e il programmatore tipico sarà più guidato da un'intuizione pseudomatematica come "una funzione deve essere continua dove definita" di quanto farebbe un matematico.

Inoltre, puoi aspettarti una raffica di commenti da diversi utenti e i puri matematici non torneranno ai calcolatori per la loro visione della verità matematica tanto, quindi non puoi aspettarti che il loro contributo sommerga quello degli altri.

Quindi il risultato è più democratico che matematico e le maggioranze democratiche tendono a cambiare.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.