模幂运算
Posted darkchii
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了模幂运算相关的知识,希望对你有一定的参考价值。
https://en.wikipedia.org/wiki/Modular_exponentiation
该算法在一些数论题中十分有用。算法用于快速求解同余方程 $ c = a^b mod M $ ,其中 a, b, M 已知。
code:
#include <iostream> #define ll long long ll modexpo(ll base, ll expo, ll mod) { if (mod == 1) return 0; ll res = 1; while (expo > 0) { if (expo & 1) res = (res*base) % mod; base = (base*base) % mod; expo >>= 1; } return res; } int main() { std::cout << modexpo(2,3,5) << std::endl; return 0; }
以上是关于模幂运算的主要内容,如果未能解决你的问题,请参考以下文章
模幂运算问题,使用朴素算法和重复-平方算法(快速幂+C#计算程序运行时间)
模幂运算问题,使用朴素算法和重复-平方算法(快速幂+C#计算程序运行时间)
欧几里得算法解决 RR' - NN' = 1. 使用蒙哥马利算法进行模幂运算以在 python 或 Petite Chez 方案中实现费马检验