author: wuki
date: 2019/4/28
subject:快速幂取模
advantage: 朴素幂需要O(n)的复杂度,而快速幂只需要O(log n),数大时速度很快。(如n = 10000,朴素幂10000次,快速幂100次就ok了。
取模 theory:(基本原理1)a^b%c = (a%c)^b%c(a的b次对c取模 = a对c取模的b次再对c取模)
(2)(a+b)%c = a%c+b%c;
(3)(a-b)%c = a%c+b%c;
(4)(a*b)%c = a%c * b%c
(5) a/b不符合上述2,3,4规定
note: 快速幂取模是”快速幂“ 和”取模“两个概念。先一个一个的理解。
“快速幂”是把幂当作二进制来处理。
“取模”是根据”+,-,*“时他们的模不变,防止出界。
本教程将两个内容合并到一块,需要慢慢理解,不能操之过急。
先明白” 快速幂的知识 “和” 取模 “再来看就更好理解了。
steps: 1.把3^11看成(3^8 * 3^2 * 3^1),11的二进制是1011。