學習筆記 快速冪

2022-07-17 07:57:08 字數 924 閱讀 3182

【定義】快速冪顧名思義,就是快速算某個數的多少次冪。其時間複雜度為 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...