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

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


aluckdog
浏览 171回答 1
1回答

至尊宝的传说

这变得非常容易,因为 pythonmath.pow有一个模数的可选参数。from math import pow(pow(2, a, 1000000007)*a)%1000000007这让您不必2**a对所有数字进行运算,只需返回模数即可。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python