![]() |
1
4
我不知道Python,但是不,它不需要这样做。2^19937不需要计算,它只是一个二进制移位(“<<“”)19937年,所以速度非常快。只有在以十进制打印时,才需要进行实际转换,这要慢得多。
10^-1 = 0.1
10^0 = 1
第二个例子更有趣:当您使用大整数m计算m^n时,最快的方法是将其连续相乘并存储临时结果。 示例:10^345
a=10^2
C C C C C C b*10 (可进一步优化:参见Knuth,半数值算法)
编辑:乘法的精确实现取决于:除了正常的学校乘法Karatsuba外,Tom Cooke和Schoenhagen Strasse(FFT)乘法是 |
![]() |
2
6
我不想在你的阅兵式上泼冷水,但它这么快的原因是数学模块实际上并没有用Python实现。
Python支持加载导出Python API的共享库,但这些库是用其他语言实现的。math.so,这提供了您从中获得的模块
|
![]() |
3
5
而是考虑:
|
![]() |
4
0
事实上 用Python实现,但考虑到这基本上是原语乘法和对数,即使在相当大的数字上它也相当快,我并不感到惊讶。 有任意精度的数学库,例如 GMP |