众所周知,数学中提升到无穷大是一种不确定的形式。有更多讨论here。
在R控制台中,
> (1)^(Inf)
[1] 1
我认为它应该产生NaN
。请解释此输出背后的逻辑。我在Windows 7平台(32位系统)上使用R版本3.1.2。
答案 0 :(得分:5)
来自help("^")
:
1 ^ y和y ^ 0总是1。
经常输出1 ^ Inf
的限制非常有用。为0 ^ 0
返回1通常也比任何替代方案更有用。但是,这些基本上都是设计决定。
答案 1 :(得分:1)
可能存在历史和兼容性原因。 R是S和S的变体,可以追溯到1976年。S - Wikipedia R本身于1993年首次发布,与商业S-Plus的兼容性非常重要。
S被设计为统计语言,因为不确定形式的精确含义的这些细分不是一个大问题。您能举例说明在实际统计应用中何时会出现这些形式?
我怀疑在S的早期版本中,决定设置1 ^(任意)= 1,并且(任何)^ 0 = 1,0 ^(任意)= 0,(任何)^ 1 = (任何)。然而,实施这些法规的确切顺序可能不会太多。
一旦做出决定,它几乎就是一成不变的。改变行为然后有可能破坏第三方算法。因此,更容易实现一个没有实际后果的约定。
这些惯例非常简单。 Excel获得某些运算符的优先级错误,但不敢更改它以获得中断兼容性。