快速幂
来源:互联网 发布:java生成json数组 编辑:程序博客网 时间:2024/05/16 06:47
http://www.cnblogs.com/buptLizer/archive/2011/11/10/2244486.html
运算规则
模运算与基本四则运算有些相似,但是除法例外。其规则如下:
(a + b) % p = (a % p + b % p) % p (1)
(a – b) % p = (a % p – b % p) % p (2)
(a * b) % p = (a % p * b % p) % p (3)
(a^b) % p = ((a % p)^b) % p (4)
结合律:
((a+b) % p + c) % p = (a + (b+c) % p) % p (5)
((a*b) % p * c)% p = (a * (b*c) % p) % p (6)
交换律:
(a + b) % p = (b+a) % p (7)
(a * b) % p = (b * a) % p (8)
分配律:
((a +b)% p * c) % p = ((a * c) % p + (b *c) % p) % p (9)
重要定理:
若a≡b (% p),则对于任意的c,都有(a + c) ≡ (b + c) (%p);(10)
若a≡b (% p),则对于任意的c,都有(a * c) ≡ (b * c) (%p);(11)
若a≡b (% p),c≡d (% p),则 (a + c) ≡ (b + d) (%p),(a – c) ≡ (b – d) (%p),
(a * c) ≡ (b * d) (%p),(a / c) ≡ (b / d) (%p); (12)
快速幂运算:
int pow(int a,int n){ int rs=1; while(n) { if(n&1) rs=rs*a; a=a*a; n=n>>1; } return rs;}快速幂取余:
//求a^b%n,O(logb)__int64 get_mi_mod(__int64 a,__int64 b,int n){ if(0 == a) return 0; if(0 == b) return 1; __int64 rs=1; while(b) { if(b&1) rs=(rs*a)%n; a=(a*a)%n; b>>=1; } return rs;}
0 0
- 快速矩阵快速幂
- 快速幂,快速幂取模
- 快速幂 + 快速幂取模
- 快速幂 快速幂取模
- 快速幂&&快速乘法
- 快速幂&快速乘
- 快速幂 快速乘法
- 快速幂 快速幂取模
- 快速幂+快速乘法
- 【快速幂】【快速幂取模】
- 快速乘法-快速幂
- 快速乘/快速幂/矩阵快速幂
- 快速乘 快速幂 矩阵快速幂
- 快速幂,快速幂取模,矩阵快速幂
- 快速幂
- 快速幂
- 快速幂
- 快速幂
- BZOJ 1588 营业额统计 Splay
- android中设置ListView的选中的Item的背景颜色
- 字符串函数原型
- android安全退出所有activity
- CSS3创建H5预载动画效果
- 快速幂
- 稳定排序和不稳定排序
- android intentFilter 匹配规则
- 全志H3平台pinctrl模块分析
- tomcat配置虚拟目录映射
- 横、竖分割线
- ---NSPredicate(过滤器)
- PHP防盗链的一个案例
- 二叉树的所有路径