快速幂取模(二分思想)
来源:互联网 发布:上海圣剑网络 徐轶群 编辑:程序博客网 时间:2024/06/12 19:32
快速幂取模就是在O(logn)内求出a^n mod c的值。
原理很简单
用到定理 (a*b)%c=(a%c)*(b%c);
所以
n为偶数,a^n%c= (a^(n/2)%c)*(a^(n/2)%c)
n为奇数,只需要再乘以a%c
因此很容易设计出一个基于二分的递归算法。
原理很简单
用到定理 (a*b)%c=(a%c)*(b%c);
所以
n为偶数,a^n%c= (a^(n/2)%c)*(a^(n/2)%c)
n为奇数,只需要再乘以a%c
因此很容易设计出一个基于二分的递归算法。
代码:
long long quickmod(int a,int n,int c){ if(n == 0) return 1 % c; if(n == 1) return a % c ; long long t = quickmod(a,n/2,c);//递归调用,采用二分递归算法,注意这里n/2会带来奇偶性问题 t = t * t % c;//二分,乘上另一半再求模 if(n % 2)//n是奇数,因为n/2还少乘了一次a t = t * a %c; return t;}
- 快速幂取模(二分思想)
- poj 1995 快速幂取模,核心是二分思想
- 快速幂取模(分治思想)
- POJ 3233 Matrix Power Series (矩阵快速幂 + 二分思想)
- 二分思想
- 快速排序 (递归思想)
- 思维(二分思想递归)CodeForces
- HDU 2178 猜数字(二分思想)
- 二分和枚举(主要是二分思想)
- 矩阵快速幂(二分)
- 二分查找思想
- 二分搜索及其思想(挑战例题总结)
- poj 2456 Aggressive cows (二分+贪心思想)
- poj1845 (数论+二分快速取模)
- poj2503-Babelfish(快速排序+二分查找)
- 二分查找算法(快速查找)
- 快速求幂(二分求幂)
- poj 3233(矩阵快速幂+二分)
- 认真写点博客
- Nim游戏博弈(收集完全版)
- 设计模式---->单一职责原则
- Android 添加JNI文件到源码中
- virsh命令调用流程(2)
- 快速幂取模(二分思想)
- Python函数参数传递以及变量作用域
- USB 主机在请求HID 设备的配置描述符时,设备首先返回的描述符为:
- 为 Ubuntu 上的 PHP 安装 APC,提升应用速度
- virsh命令调用流程(3)
- php函数
- 图片拖出边框删除
- 面向对象的应用(1)
- lnmp_install.sh