1. 递归快速幂:
pow(2,8)=2^4 * 2^4= (2^2 * 2^2) * (.....)
pow(2,7)= 2^6*2 = (2^3 * 2^3)*2 =(......)
负数也是同样原理
2. 非递归快速幂:
将次方转为2进制:进行计算
以7的10次方为例:
每次计算a累乘 eg.第二位对应--->pow(a,2)
eg.第五位对应--->pow(a,2^4)
当数位为1时乘a
3. 对于大整数取模
接着,先给出取模的几个重要结论:
-
(a + b) % p = (a%p + b%p) %p
-
(a - b) % p = ((a%p - b%p) + p) %p
-
(a * b) % p = ((a%p)*(b%p) %p