文章出处:http://blog.youkuaiyun.com/jinbaosite/article/details/72676514?utm_source=itdadao&utm_medium=referral
题意
求:3^0 + 3^1 +…+ 3^(N) mod 1000000007
解题思路
由等比数列的前n相和,我们可以得到
3n+1−12%1000000007
我们知道
AB%C≠A%CB%C%C
和
(A∗B)%C=(A%C∗B%C)%C
所以我们要将除法转为乘法,引入乘法逆元。
乘法逆元:如果x与y的积除以z所得的余数为1,即xy = 1 (mod z),则称x和y对于模数z来说互为逆元。
假定
(B∗X)%C=1
则
AB%C=AB∗1%C=AB%C∗1%C=AB%C∗(B∗X)%C=(AB∗B∗X)%C=(A∗X)%C
在本题中,2*500000004 = 1 (mod 1000000007),所以500000004是2对于1000000007的逆元。则
3n+1−12%1000000007=(3n+1−1)∗500000004%1000000007
对于
ab%c
,采用快速幂运算即可。