矩阵快速幂的问题
前言
這個問題,本科ACM時期做過專門的總結,但是,由于后來也沒有使用過相關的知識,就忘得差不多了最近回顧了一下
之前的博客鏈接
快速冪取模算法
快速冪算法模板
矩陣乘法快速冪模板
相關的地址
矩陣快速冪的寫法
while(N){if(N&1)res=res*A;n>>=1;A=A*A;}//改進版(取模)a^b mod n :int modexp(int a, int b, int n){int t = a, ret = 1;while(b != 0){if(b % 2 == 1) ret *= t % n;t = t * t % n;b /= 2;} return ret;}long long modexp(long long a, long long b, int mod){long long res=1;while(b>0){//a=a%mod;(有時候n的值太大了會超出long long的儲存,所以要先取余)if(b&1)//&位運算:判斷二進制最后一位是0還是1,&的運算規則為前后都是1的時候才是1;res=res*a%mod;b=b>>1;//相當于除以2;a=a*a%mod;}return res;}
總結
- 上一篇: python对文件的读写正确操作方式
- 下一篇: Docker学习(一)-----Dock