In che modo le forme lingua [X] maniglia indeterminati come 0 ^ 0?
https://softwareengineering.stackexchange.com/questions/9788
-
16-10-2019 - |
Domanda
x va a 0, i limiti di x ^ 0 e 0 ^ x andare a 1 e 0, rispettivamente. Alcuni dicono che il miglior valore per 0 ^ 0 dipende dal contesto, altri dicono che il valore di 0 ^ 0 dovrebbe essere 1. Mi interessa sapere quello che dicono i vostri esecutori lingua. Non sembra essere un consenso. Per esempio, in ActiveState Perl 5.12.0:
C:\>perl -e "print 0**0" 1
Mentre in Mathematica 6.0:
In[1]:= 0^0 During evaluation of In[1]:= Power::indet: Indeterminate expression 0^0 encountered. >> Out[1]= Indeterminate
Sono anche interessati a conoscere il vostro parere sulla questione: Che cosa dovrebbe 0 ^ 0 BE? E anche se si è mai introdotto un bug in un programma che si stava scrivendo (o ha avuto un momento difficile debug di un programma) a causa del modo in cui le maniglie lingua indeterminato forme?
Soluzione
questo articolo di Wikipedia,
"lingua più programmazione con una funzione di potenza sono implementate utilizzando la funzione IEEE pow e quindi valutare 0 ^ 0 in 1. Il C dopo e C ++ standard descrivono questo come il comportamento normativo. Il Java mandati standard di questo comportamento. Il .NET quadro metodo System.Math.Pow tratta anche 0 ^ 0 come 1 ".
Altri suggerimenti
Python:
>>> for t in [int, float, complex, fractions.Fraction, decimal.Decimal]:
... print(t, t(0)**0)
...
<type 'int'> 1
<type 'float'> 1.0
<type 'complex'> (1+0j)
<class 'fractions.Fraction'> 1
Traceback (most recent call last):
...
decimal.InvalidOperation: 0 ** 0
Google dice:
0 ^ 0 = 1
Delphi è ottenuto 2 valori float: NaN
e Infinity
. Che vengono restituiti in caso di stranezze.
Ma non ha costruito in funzione di elevamento a potenza.
^
è per i puntatori, come in "ehi tu lassù, sto puntando a voi!"