题
当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标准规定了此行为。.NET Framework方法系统系统。
其他提示
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说:
0^0 = 1
Delphi有2个浮点值: NaN
和 Infinity
. 。在怪异的情况下,这将被归还。
但是它没有内置的指示功能。
^
是指指针,如“嘿,你在那里,我指着你!”