矩陣快速冪取模為什麼不改變結果

2021-03-03 20:27:51 字數 964 閱讀 6107

1樓:匿名使用者

你的意思是

|a^n|=|a|^n麼

這是顯而易見的

記住基本公式

|ab|=|a||b|,那麼取模n次之後

自然得到|a^n|=|a|^n

不理解矩陣快速冪如何用於求斐波那契數列第n項%m的餘數,望大神講解,越詳細越好

2樓:匿名使用者

按照正常的邏輯是隻要求a[2][2]=這個矩陣的n次方就可以得到斐波那契數列的第n項(即a[0][1])的值。但是你忽略了一點,就是你在求a[0][1],a[1][0],a[1][1]的值的時候你的a[0][0]的值其實已經改變了,導致你求得的a[0][1]的值不正確,繼而影響到a[1][0]和a[1][1]的值。

因此,我們在遍歷這四個值的時候是不能改變其中任何一個的,只有改完之後才能去改變它的值。所以我們可以用幾個變數先將求得的新矩陣各值存起來,如下:

#include

int a[2][2]=,b[2][2]=;//使用兩個二維陣列表示快速冪演算法要用到的矩陣

int main()

}t=a[0][0];

a[0][0]=1;//重置矩陣

a[0][1]=1;

a[1][0]=1;

a[1][1]=0;

if(m==0)

a[0][0]=0;

else if(m==1 || m==2)a[0][0]=1;

else

}u=a[0][0];

a[0][0]=1;//重置矩陣

a[0][1]=1;

a[1][0]=1;

a[1][1]=0;

t=t%u;

printf("%d\n",t);

}return 0;

}還有一點,就是你的矩陣相乘後兩項寫錯了,自己對比一下改過來吧。

這樣就能得到你想要的結果了。

a矩陣的行列式的10次冪表示什麼意思

a矩陣的行列式是一個數 一個數的10次冪意思還不夠清楚嗎 矩陣的 1次方是什麼意思?矩陣的 1次方是指該矩陣的逆矩陣,該矩陣成為可逆矩陣。矩陣與矩陣的 1次方的乘積為單位矩陣。標準定義 設a是數域上的一個n階矩陣,若在相同數域上存在另一個n階矩陣b,使得ab ba e 則我們稱b是a的逆矩陣,而a則...

9mod1結果為什麼是0啊?vb裡取模運算是怎麼算啊

取模運算可以這樣理解 9 mod 1 0 9 1 9 0 1 9 0 9 9 mod 2 1 9 2 4.1 2 4 1 9 取模就是求餘數 除數 被除數 商 餘數另外要注意 運算順序 符號 說明 優先順序 指數 1 取負 2 乘 3 除 3 整除 4mod 求餘 5 加 6 減 6 mod是求餘數...

為什麼矩陣a的行列式0,矩陣a的伴隨矩陣也不為

一個方陣與其伴隨copy矩陣的秩的關係 1 如果 a 滿秩,則 a 滿秩 2 如果 a 秩是 n 1,則 a 秩為 1 3 如果 a 秩 n 1,則 a 秩為 0 也就是 a 0 矩陣 謝謝樓主的問題,解決了我的問題。你問的問題很簡單,我回答一下 n階矩陣a,如果伴隨矩陣a 不等於0,a是否也不為0...