当 a 和 b 都非常大时如何计算 a**b(按 10**10 到 10**18 的顺序)

  • 本文关键字:顺序 计算 非常 何计算 python
  • 更新时间 :
  • 英文 :


>我需要计算((2**a)*(a))%1000000007其中 a 是 10^10 的顺序。 据我所知,Python 可以处理小于 2^1400 的 int。 那么有什么办法可以计算出来呢? 或者有什么数学规则来解决它?

这变得非常简单,因为python的math.pow有一个可选的模参数。

from math import pow
(pow(2, a, 1000000007)*a)%1000000007

这样你就不会对所有数字进行2**a,而只是返回模数。

最新更新