我尝试在 Javascript 中执行 Modular Exponentiation 来验证算法,并震惊地发现Javascript 与 Python 相比没有给出准确的结果,为什么会这样。我认为这与 Javascript 处理数据类型(如文本)的方式有关,但我想了解更多信息,并且我知道设计这两种语言的目的。
问问题
369 次
2 回答
10
于 2013-11-02T14:15:24.247 回答
7
Python 中的pow()
函数返回整数输入的整数结果:
>>> pow(17, 22)
1174562876521148458974062689L
这与为您提供的功能不同Math.pow()
,后者使用浮点结果:
> Math.pow(17, 22)
1.1745628765211486e+27
Python中的等效函数是math.pow()
:
>>> import math
>>> math.pow(17, 22)
1.1745628765211484e+27
并受到相同的限制,尽管实际结果略有不同:
>>> math.pow(17, 22) % 21
3.0
JavaScript 只有 Number 类型,它将 JS 算术限制为浮点精度,always,而 Python 对内存绑定整数类型的支持为其提供了更大的精度范围。
于 2013-11-02T14:15:52.547 回答