言語[x]は0^0のような不確定な形式をどのように処理しますか?
https://softwareengineering.stackexchange.com/questions/9788
-
16-10-2019 - |
質問
xが0になると、x^0と0^xの制限はそれぞれ1と0になります。 0^0の最良の値はコンテキストに依存していると言う人もいれば、0^0の値は1であるべきだと言う人もいます。言語の実装者の言うことを知りたいと思っています。コンセンサスはないようです。たとえば、Activestate Perl 5.12.0:
C:\>perl -e "print 0**0" 1
Mathematica 6.0にいる間:
In[1]:= 0^0 During evaluation of In[1]:= Power::indet: Indeterminate expression 0^0 encountered. >> Out[1]= Indeterminate
私はまた、この問題についてあなたの意見を知りたいと思っています:0^0は何ですか?また、あなたの言語が不確定なフォームを処理する方法のために、あなたが書いているプログラムにバグを導入したことがあるかどうか(またはプログラムをデバッグするのに苦労した)かどうか?
解決
によると これ ウィキペディアの記事、
「パワー関数を備えたほとんどのプログラミング言語は、IEEE POW関数を使用して実装されているため、0^0を1として評価します。後のCおよびC ++標準はこれを規範的な動作として説明しています。Java標準はこの動作を義務付けています。 .math.powは0^0を1として扱います。 "
他のヒント
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
グーグルは言う:
0^0 = 1
Delphiは2つのフロート値を持っています: NaN
と Infinity
. 。奇妙さの場合に返されます。
しかし、それは組み込みの指数関数を持っていません。
^
「ちょっとそこにいる、私はあなたを指している!」のように、ポインターのためです。
所属していません softwareengineering.stackexchange