[爆卦]矩陣次方是什麼?優點缺點精華區懶人包

為什麼這篇矩陣次方鄉民發文收入到精華區:因為在矩陣次方這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者ljuyentintho (小劉)看板C_and_CPP標題[問題]矩陣的次方問題時間Sun O...

矩陣次方 在 ?賭Sir|數學考試專家 Instagram 的最讚貼文

2021-09-03 14:17:26

若然你學過Matrix (矩陣) 都一定感覺到,matrix 乘 matrix 係幾咁麻鬼煩😫 而乘法麻煩,即係代表住次方數都極麻煩,因為每多一個次方,代表住又要乘自己一鑊,見鑊打鑊🤛🏻⁣ ⁣ 連一般人都覺得煩,數學家當然都覺得煩。唔同嘅係:一般人覺得煩,可能就會怨天怨地,甚至怨邊條友發明數學搞到自...


開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Dev-C++

問題(Question):

目前的程式是執行矩陣平方的結果

我希望算出這個矩陣的n次方(假設n是1000)

請問我該怎麼設定呢?

另外目前矩陣只能輸入整數

有辦法改成輸入小數嗎?

程式碼(Code):(請善用置底文網頁, 記得排版)

#include<stdio.h>

#include<conio.h>

int main()

{

int a[10][10],mult[10][10],r1,c1,i,j,k;


printf("請輸入矩陣的rows跟columns:");
scanf("%d%d",&r1,&c1);

//儲存矩陣的元素

printf("\n輸入第一個矩陣的elements:\n");

for(i=0;i<r1;++i)

for(j=0;j<c1;++j)

{

printf("Enter elements a%d%d:",i+1,j+1);

scanf("%d",&a[i][j]);

}


//初始化最終的matrix

for(i=0;i<r1;++i)

for(j=0;j<c1;++j)

{
mult[i][j]=0;
}



//矩陣相乘

for(i=0;i<r1;++i)

for(j=0;j<c1;++j)

for(k=0;k<c1;++k)
{

mult[i][j]+=(a[i][k]*a[k][j]);

}

//OUTPUT矩陣

printf("\n矩陣輸出:\n");

for(i=0;i<r1;++i)

for(j=0;j<c1;++j)

{

printf("%d",mult[i][j]);

if(j==c1-1)

printf("\n\n");

}

getch();

}

以上

謝謝各位好心的大大

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 140.114.54.99
※ 文章網址: http://www.ptt.cc/bbs/C_and_CPP/M.1414327204.A.BE1.html
jacky1989: 我只知道沒排版的程式沒有看的必要 10/26 20:51
ljuyentintho: sorry 不懂版規 10/26 21:05
※ 編輯: ljuyentintho (114.35.172.129), 10/26/2014 21:20:53
jacky1989: 這不只是板規,給任何人看程式碼排版是基本要求 10/26 22:03
jacky1989: 所以快改吧!! 10/26 22:03
※ 編輯: ljuyentintho (220.132.55.51), 10/26/2014 23:00:03
jammy50605: 有一種type叫做float 10/26 23:06
jammy50605: 要N次方就 mult[i][j]+=(mult[i][k]*a[k][j]) ; 10/26 23:08
jammy50605: 在自己加一個跑n次的迴圈就行了 10/26 23:09
ljuyentintho: 你是說程式裡的int改成float然後main前面改成void嗎 10/27 00:50
jammy50605: 宣告陣列改成float a[][] main前面那個叫做回傳值型態 10/27 01:02
jammy50605: 跟你要的無關 10/27 01:03
jammy50605: 還有輸出的地方要改成%f或%.2f代表輸出到小數點後兩位 10/27 01:05
wope: 用scanf輸入矩陣 不小心輸入錯不就重新執行 10/27 05:06
wope: 1000次100000次都一樣 自己查eigenvector及eigenvalue 10/27 05:10
wope: 另外,不知維度矩陣宣告要用動態 10/27 05:12
wope: 小數點就用double 或float 宣告你的變數a 10/27 05:16
wope: 如果速度不夠快 後面矩陣要轉置 10/27 05:20
wope: 這樣走下來一個月就不見了 10/27 05:21
longlongint: 建議原po改用matlab 10/28 19:36
dirkc: scanf是stdin,用導向可以把輸入放在檔案裡;另外是否用heap 10/29 12:14
dirkc: 好像也沒有定論,通常是看需求囉 10/29 12:15
dirkc: 我只知道有個版規是語氣請和緩 :) 10/29 12:17

你可能也想看看

搜尋相關網站