次方求模

Posted nioh

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了次方求模相关的知识,希望对你有一定的参考价值。

a的n次方余m

for(int i = n; i > 0; i >>= 1, a = a * a % M)
    if(i & 1) s = s * a % M;
cout << s;

时间复杂度为$O(logn)$,相当于把指数转换为二进制再运算。

例如,$5^{11}\%3=5^{1011}\%3=(5^{1000}*5^{10}*5^{1})\%3=((5^{1000}\%3)*(5^{10}\%3)*(5^{1}\%3))\%3$

以上是关于次方求模的主要内容,如果未能解决你的问题,请参考以下文章

NYOJ--102--次方求模(快速求幂取模)

linux内核无锁缓冲队列kfifo原理

一致性hash

运算符

常见运算符

030Java中的求模计算