(小费马定理降幂)Sum
題目:
分析與解答:
參考思路:
https://www.cnblogs.com/stepping/p/7144512.html
https://blog.csdn.net/strangedbly/article/details/50996908
根據隔板定理,把N分成一份的分法數為C(1,n-1),
把N分成兩份的分法數為C(2,n-1),
把N分成三份的分法數為C(3,n-1),…. ,
把N分成N份的分法數為C(n-1,n-1)。
設sum=S(1)+S(2)+…+S(N),根據組合數求和公式,sum=2^(n-1)。
原式可化為(2^(N-1))mod(10^9+7)
但是現在n太大了,需要考慮簡化。
對于(a^N)mod(p)
使用費馬小定理的前提條件是
p是質數,且gcd(a,p)=1,那么 a^(p-1)≡1(mod p)
費馬小定理降冪例子:
p=7
求(2^32)%p
由費馬小定理(2^6)%p=1
所以((2^6)^k)%p=1 (k=1.2.。。。n)
(2^32)%p=(2^[(6*5)+2])%p
=[2^(6*5)*2^2]%p
=[(2^(6*5)%p)(2^2%p)]%p //(a*b)%m=[(a%m)(b%m)]%m;
=[1*(2^2%p)]%p //2^(6*5)%p為對費馬小定理的應用
=2^2%p;
所以我們推廣一下
求(a^N)mod(p)
a^(p-1)≡1(mod p)
k=N%(p-1)
(a^N)mod(p)=(a^k)mod(p)
對于這一題
(2^(N-1))mod(10^9+7)
k=(N-1)mod(10^9+7-1)=Nmod(10^9+7-1)-1
最后求(2^k)mod(p)
由于N很大,我們只能用字符數組從一位開始%mod
參考代碼:
https://blog.csdn.net/valieli/article/details/52806037
總結
以上是生活随笔為你收集整理的(小费马定理降幂)Sum的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: sap运维要做哪些工作_患上腰椎间盘突出
- 下一篇: wsld2java axis_Weblo