【定義】快速冪顧名思義,就是快速算某個數的多少次冪。其時間複雜度為 o(log₂n), 與樸素的o(n)相比效率有了極大的提高。
【舉例】
以下以求a的b次方來介紹
把b轉換成二進位制數。
該二進位制數第i位的權為2^(i-1)
例如a^11=a^(2^0+2^1+2^3)
11的二進位制是1011
11 = 2³×1 + 2²×0 + 2¹×1 + 2º×1
因此,我們將a¹¹轉化為算a^(2^0)*a^(2^1)*a^(2^3)
【實現】
快速冪可以用位運算這個強大的工具實現
b&
1
b>>
1
【**】
1、常規求冪
1常規求冪intpow1(inta,intb)
2
2、二分求冪(一般)
1二分求冪(一般)intpow2(inta,intb)211
return
r;12 }
3、二分求冪(位操作)
1二分求冪(位操作)int pow3(int a,intb)2
11return
r;12 }
4、快速冪(位運算)
1快速冪(位運算)int pow4(int x,intn)2
11}12int result=x;
13 n>>=1;14
while(n!=0)15
21return
result;
22 }
學習筆記 快速冪
求 m n k 快速冪 m n k int quickpow int m,int n,int k return b 快速冪,通過將n轉換成二進位制的方法優化運算。例如n 37 的時候 37 2 5 2 2 2 0 那麼m 37 k m 2 5 2 2 2 0 k m 2 5 m 2 2 m 2 0 ...
快速冪學習筆記
使用一般方法來計算x nx n xn需要計算n nn次,而快速冪就是一種只需要計算log 2 n log 2 n log2 n 次就可以計算出x nx n xn的演算法。1.n an b na b n an b n nanb n a b 容易得很,是八年級數學內容吧 2.二進位制 假設n 10 10...
矩陣快速冪 學習筆記
首先,我們需要了解矩陣。矩陣說白了就是一堆數,排成長方形的形狀。然後就是矩陣的運算,加減都很簡單,這裡談一下乘法 所以矩陣相乘,一定是有其中乙個矩陣的行等於另乙個矩陣的列的。矩陣快速冪則和一般的快速冪的操作是一樣的,只是把乘法變成了矩陣乘而已,就像過載那樣。這裡還要說一下單位矩陣 對於n m n m...