【发布时间】:2015-12-13 04:48:52
【问题描述】:
我注意到在 python 中平方根非常快。
import time
a = time.time()
print((1234567891011121314151617181920**8)**0.5)
d = time.time()-a
print(d)
输出:
2.32305723559e+120
0.0150001049042
这是一个 200+ 位数的数字,不到 0.1 秒!
那么这一切背后的算法是什么?
【问题讨论】:
-
注意:
123...1920**8被计算为一个 bigint,然后将其转换为浮点 double 以进行平方根运算。因此,平方根对 64 位 FP 数进行运算,而不是“200 位”完全准确的整数。
标签: python number-theory