为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

aluckdog 2021-10-12 16:27:52
我需要((2**a)*(a))%1000000007按 10^10 的顺序计算a 的位置。据我所知,python 可以处理小于 2^1400 的 int。那么有没有办法计算这个?或任何数学规则来解决它?
查看完整描述

1 回答

?
至尊宝的传说

TA贡献1789条经验 获得超10个赞

这变得非常容易,因为 pythonmath.pow有一个模数的可选参数。


from math import pow

(pow(2, a, 1000000007)*a)%1000000007

这让您不必2**a对所有数字进行运算,只需返回模数即可。


查看完整回答
反对 回复 2021-10-12
  • 1 回答
  • 0 关注
  • 170 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信