python如何自然地支持大整数并且高效?

Zer*_*Liu 4 python biginteger

在python中,如果我们让a = 2*4,那么"a"将是整数类型.但是如果我们让a = 2**400,那么"a"将自动为long类型,这是java的BigInteger对应物.

因此,Python可以在必要时自动将整数转换为BigInteger.我的问题是:如果每次对整数执行算术运算,Python都会检查此操作是否导致溢出.如果溢出,将其转换为BigInteger.这不是很贵吗?因为这基本上意味着Python在每个整数算术指令之后插入溢出检查指令.那么python如何自然地支持大整数并且高效?

use*_*ica 8

这不是很贵吗?

当然,这远远不是最昂贵的事情.我们还对所涉及的算术运算进行动态调度,并动态分配对象以保存结果等.

那么python如何自然地支持大整数并且高效?

如果你的算法花费所有时间用Python整数进行Python级算术,那么效率就不高.地狱会很慢.在这种情况下,您可能希望使用NumPy或C而不是Python整数算法.