【问题标题】:Why infinity to power 0 is implemented to be 1?为什么将 0 的无穷大实现为 1?
【发布时间】:2020-05-02 16:18:32
【问题描述】:

这在数学中是一个不确定的形式,但在 Python 和 JavaScript 中它的结果是 1。 测试于

Python:

inf=float('inf')
print(inf**0)

JavaScript

console.log(Math.pow(Infinity,0))
console.log(Infinity**0)

【问题讨论】:

  • 您希望结果是什么?根据数学定义,任何 0 次方都是 1。
  • @ThierryLathuille 当然,但这不是这个问题的意义所在。
  • 这是一个 0 次方的情况,在数学上没有如此明确的定义。
  • 我认为引用 IEEE 754 是正确的答案。它在 6.1 - 无穷算术中说:“当存在这样的限制时,浮点算术中的无穷大行为源自具有任意大操作数的实数算术的极限情况。”所以,当然,1 完全有道理。

标签: javascript python math infinity


【解决方案1】:

规范就是这样定义的:

6.1.6.1.3 Number::exponentiate (base, exponent)

返回将基数提高到幂指数的结果的依赖于实现的近似值。

如果指数为 NaN,则结果为 NaN。
如果指数为 +0,则结果为 1,即使基数为 NaN。
[...]

来源:https://tc39.es/ecma262/#sec-numeric-types-number-exponentiate(回答者强调)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-10-16
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-16
    • 2018-12-03
    • 2022-01-23
    相关资源
    最近更新 更多