演算法筆記 矩陣求冪

2021-10-02 21:19:35 字數 640 閱讀 8039

1.矩陣求冪

#include//如果把pow寫在main函式下面的話,需要加一句函式呼叫

void pow(int result[20][20],int a[20][20],int n){//注意函式的寫法

int i,j,k;

int c[20][20];//用於儲存中間結果

for(i=0;i題目分析:

(1)先確定兩矩陣相乘的求法,若要求c[i][j],則為第乙個矩陣第i行的各個元素與第二個矩陣第j列的各個元素分別相乘再相加。用**表示出來即為:

for(i=0;i(2)求k次冪,把上述求兩個矩陣相乘的方法寫成函式,則k次冪需要呼叫k-1次,因為呼叫1次是兩矩陣相乘,呼叫2次是矩陣的三次冪,所以為k-1次

注意點:

(1)雖然求的是矩陣的冪,但求時用的是result[i][j]*a[i][j],因為經過一次運算後,求二次冪時兩矩陣已不相同;

(2)題目中對輸出格式有規定,所以當j=n-1時要換行,這裡要有乙個條件判斷;

(3)如果把pow寫在main函式下面的話,需要加一句函式呼叫。

矩陣快速求冪

今天看 劍指offer 看到乙個遞推關係 f n f n 1 f n 2 書中提出了一種簡單的演算法,也就是矩陣乘法 如果是n次方,那麼時間複雜度應該是o n 那麼有沒有一種更快的演算法呢?快速冪演算法能讓時間複雜度降至o logn 怎麼來做快速冪演算法呢?我們首先先想乙個簡單的,乙個數字a,求他的...

矩陣快速求冪

在只使用標準庫的情況下,c 沒有現成的處理矩陣的標準庫,所以矩陣的運算就比較麻煩,尤其是矩陣的乘法 加減法都可以對應位置做加減,乘法的運算相對比較複雜,冪運算又會帶來的大量的乘法運算,所以這裡記錄一種 矩陣快速求冪的方法。這種方法可以將運算降低至指數次,原理是這樣的 1.矩陣a的m次方,先把m分解成...

矩陣快速冪求fib

qn是個特別可愛的小哥哥,qy是個特別好的小姐姐,他們兩個是一對好朋友 cp 劃掉 又是一年嚶花爛漫時,小qn於是就邀請了qy去嚶花盛開的地方去玩。當qy和qn來到了田野裡時,qy驚奇的發現,嚶花花瓣以肉眼可見的速度從樹上長了出來。仔細看看的話,花瓣實際上是以一定規律長出來的,而且,每次張成新的花瓣...