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

2024-04-25 20:38:05 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要计算((2**a)*(a))%1000000007,其中a的顺序是10^10。据我所知,python可以处理小于2^1400的int。那有没有办法计算这个?或者任何数学规则来解决它?你知道吗


Tags: 顺序规则数学int办法
1条回答
网友
1楼 · 发布于 2024-04-25 20:38:05

这非常容易,因为python的math.pow有一个可选的modulo参数。你知道吗

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

这让我们不必对所有数字进行2**a,只需返回模。你知道吗

相关问题 更多 >