8

我一直认为 1 的任何幂等于 1,但Math.pow(1, Infinity)返回 NaN。为什么不是1?

4

4 回答 4

5

这更像是一个数学问题而不是 Javascript 问题,因此您可以使用以下数学解释 ( http://mathforum.org/library/drmath/view/53372.html ):

当你有类似“无穷大”的东西时,你必须意识到它不是一个数字。通常你的意思是某种限制过程。因此,如果您有“1^infinity”,那么您真正拥有的是某种限制:底数并不是真正的 1,而是可能越来越接近 1,而指数可能会越来越大,例如 (x+ 1)^(1/x) 为 x->0+。

问题是,哪个发生得更快,基数接近 1 还是指数变大?要找出答案,让我们致电:

L = lim x->0 of (x+1)^(1/x)

然后:

ln L = lim x->0 of (1/x) ln (x+1) = lim x->0 of ln(x+1) / x

那是什么?因为 x->0 它是 0/0 形式,所以取顶部和底部的导数。然后我们得到 lim x->0 of 1/(x+1) / 1,这 = 1。所以 ln L = 1,并且 L = e。凉爽的!

这是真的吗?尝试插入一个很大的 x 值。或者将此限制视为 e 定义的变体。不管怎样,这是真的。极限是 1^infinity 形式,但在这种情况下它是 e,而不是 1。尝试在指数中使用 (2/x) 或 (1/x^2) 或 1/(sqrt 重复工作(x)),看看这如何改变答案。

这就是我们称之为不确定的原因——所有这些不同版本的极限都接近 1^infinity,但最终答案可以是任何数字,例如 1、或无穷大或未定义。您需要做更多的工作来确定答案,因此 1^infinity 本身尚未确定。换句话说,1 只是 1^infinity 的答案之一。

“不确定”的答案不是数字。

于 2012-09-01T22:08:21.397 回答
3
于 2012-09-01T21:59:04.253 回答
1
于 2013-03-07T01:58:35.763 回答
1

IEEE 754-2008 定义: 1^(+-)Inf = +1

您使用的语言不符合标准。

于 2013-02-24T15:12:09.090 回答