gpt4 book ai didi

python - Python 内置 pow 和大整数的数学 pow 之间的区别

转载 作者:行者123 更新时间:2023-12-05 03:10:26 27 4
gpt4 key购买 nike

我发现对于大整数,math.pow() 没有成功给出它的整数版本。

(我在使用 math.pow 实现时遇到了一个错误 Karatsuba multiplication)。

例如:

>>> a_Size=32
>>> pow(10,a_size) * 1024
102400000000000000000000000000000000
>>> math.pow(10,a_size) * 1024
1.024e+35
>>> int(math.pow(10,a_size) * 1024)
102400000000000005494950097298915328

我选择了 10 ** a_size,结果对于大整数来说是正确的。

如需花车,请访问 Difference between the built-in pow() and math.pow() for floats, in Python?

请解释为什么 math.pow 会出现这种差异。它只能从 23 的 10 次幂和更高的次方观察到。

最佳答案

math.pow() 总是返回一个 float ,因此您会受到 float 精度的限制(几乎总是一个 IEEE 754 double )。另一方面,当使用整数参数调用时,内置的 pow() 将使用 Python 的任意精度整数算法。

关于python - Python 内置 pow 和大整数的数学 pow 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39960275/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com