日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

矩阵相乘入门,两个矩阵相乘

發(fā)布時(shí)間:2025/3/18 编程问答 19 豆豆
生活随笔 收集整理的這篇文章主要介紹了 矩阵相乘入门,两个矩阵相乘 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
?矩陣:矩陣可以看成一個(gè)n×m的數(shù)表,用二維數(shù)組表示 ?矩陣乘法:定義矩陣A,BAB可以乘法操作當(dāng)且僅當(dāng)A的大小是a×bB的大小是b×c,設(shè)矩陣C=AB,則C的大小是a×c,且有

??? 最普通的矩陣乘法是直接三個(gè)for循環(huán)直接計(jì)算而已,所以復(fù)雜度是On3

#include<iostream> using namespace std; int main() { int i,j,k; const int m=3,r=4,n=3; int a[m][r],b[r][n],c[m][n]={0}; //之前別忘清0 cout<<"請(qǐng)輸入a矩陣:"<<endl; for(i=0;i<m;i++)for(j=0;j<r;j++)cin>>a[j]; cout<<"請(qǐng)輸入b矩陣:"<<endl; for(i=0;i<r;i++)for(j=0;j<n;j++)cin>>b[j]; cout<<"兩矩陣的積為:"<<endl; for(i=0;i<m;i++)for(j=0;j<n;j++){for(k=0;k<r;k++)c[j]=c[j]+a[k]*b[k][j];cout<<c[j]<<" ";if(j==n-1) cout<<endl;} //使用這個(gè)方法可輸出矩陣格式return 0; }

先了解連那個(gè)簡(jiǎn)單的矩陣相乘,然后再來

?快速冪:矩陣的快速冪是用來高效地計(jì)算矩陣的高次方的。將樸素的On)的時(shí)間復(fù)雜度,降到Ologn

??? 大家首先要認(rèn)識(shí)到這一點(diǎn):任何一個(gè)整數(shù)N,都能用二進(jìn)制來表示

??? 例如:25?????? 二進(jìn)制表示為? 11001

運(yùn)用矩陣乘法快速冪,可以快速計(jì)算出矩陣B^(n-1),這樣實(shí)現(xiàn)將時(shí)間復(fù)雜度降低到O(log n)

?

?

??首先將這n次置換“合并”起來(算出這n次置換的乘積),然后接下來我們需要執(zhí)行這個(gè)置換即可。注意任意一個(gè)置換都可以表示成矩陣的形式。

?? 上面的例子矩陣為: 0?? 1?? 0?? 0?? 0

??????????????????????????????????????????? 1?? 0?? 0?? 0?? 0

??????????????????????????????????????????? 0?? 0?? 1?? 0?? 0

??????????????????????????????????????????? 0?? 0?? 0?? 0?? 1

??????????????????????????????????????????? 0?? 0?? 0?? 1?? 0

?

????

總結(jié)

以上是生活随笔為你收集整理的矩阵相乘入门,两个矩阵相乘的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。