python 如何计算平方根?

how does python calculate square roots?

我注意到 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 秒!

那么这一切背后的算法是什么?

在这种情况下,CPython 只是调用 C 内在函数 pow,让编译器随心所欲地使用它。 How to: pow(real, real) in x86 是某处解释在处理器级别快速实现 pow 的一个示例。