Wie geht Sprache [x] unbestimmte Formen wie 0^0 um?
https://softwareengineering.stackexchange.com/questions/9788
-
16-10-2019 - |
Frage
Da x zu 0 geht, gehen die Grenzen von x^0 bzw. 0^x zu 1 bzw. 0. Einige sagen, dass der beste Wert für 0^0 vom Kontext abhängt. Es scheint keinen Konsens zu geben. Zum Beispiel in Aktivität Perl 5.12.0:
C:\>perl -e "print 0**0" 1
Während in Mathematica 6.0:
In[1]:= 0^0 During evaluation of In[1]:= Power::indet: Indeterminate expression 0^0 encountered. >> Out[1]= Indeterminate
Ich bin auch daran interessiert, Ihre Meinung zu diesem Thema zu kennen: Was sollte 0^0 sein? Und auch, ob Sie jemals einen Fehler in ein Programm eingeführt haben, das Sie geschrieben haben (oder es schwierig war, ein Programm zu debuggen), weil Ihre Sprache unbestimmte Formen behandelt?
Lösung
Entsprechend Dies Wikipedia -Artikel,
"Die meisten Programmiersprache mit einer Leistungsfunktion werden unter Verwendung der IEEE -POW -Funktion implementiert und bewerten daher 0^0 als 1. Die späteren C- und C ++ - Standards beschreiben dies als normativ .Math.pow behandelt auch 0^0 als 1. "
Andere Tipps
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 sagt:
0^0 = 1
Delphi hat 2 Float -Werte: NaN
und Infinity
. Das wird bei Verrücktheit zurückgegeben.
Es gibt jedoch keine eingebaute Exponentiationsfunktion.
^
Ist für Zeiger, wie in "Hey du da oben, ich zeige auf dich!"