PDA

View Full Version : ضرب دو ماتریس



Mobtadi_2006
چهارشنبه 10 خرداد 1385, 04:52 صبح
الگوریتم ضرب دو ماتریس

abdollahashjaa
چهارشنبه 10 خرداد 1385, 05:41 صبح
سلام
دو حلقه داخل هم یکی برای حرکت روی ستون ها و یکی برای سطر ها بقیه اش هم که خودت میدونی
موفق باشید

bahram_222222
دوشنبه 15 خرداد 1385, 22:03 عصر
#include <stdio.h>
#include <conio.h>
int main()
{
int mat1[2][3], mat2[3][4], mat3[2][4]={0} ;
int i,j,k,l ;
clrscr();
//read mat1
for(i=0 ; i<2 ; i++)
for(j=0 ; j<3 ;j++) {
printf("tenter mat1[%d][%d]: ",i,j);
scanf("%d",&mat1[i][j]) ;
}
//read mat2
for(i=0 ; i<3 ; i++)
for(j=0 ; j<4 ;j++) {
printf("enter mat2[%d][%d]: ",i,j);
scanf("%d",&mat2[i][j]) ;
}
//multiply mat1 by mat2
for(i=0 ; i<2 ; i++)
for(j=0 ; j<4 ;j++) {
mat3[i][j]=0 ;
for(k=0 ;k<3 ; k++)
mat3[i][j] = mat3[i][j]+mat1[i][k]*mat2[k][j];
}
printf("\n the produc of mat1 & mat2") ;
printf(" is :\n\n") ;
for(i=0 ;i<2 ;i++) {
for(j=0 ; j<4 ;j++)
printf("%5d", mat3[i][j]) ;
printf("\n") ;
}
getch();
return 0;
}

mohandese_hiclass
جمعه 19 خرداد 1385, 20:37 عصر
آقای بهرام اینی که شما نوشتید برنامه هست نه الگوریتم سعی کنید به جای سورس شبه کد بنویسید تا فرد سوال کننده با سلیقه خودش کد بنویسه و روش هم کمی فکر کنه البته من این حرفو به خاطر کسی میگم که سوالو پرسیده
http://www.algorithmnevis.com/forum/index.php?topic=7.0

Sunny Girl
شنبه 15 فروردین 1388, 16:26 عصر
#include <stdio.h>
#include <conio.h>
int main()
{
int mat1[2][3], mat2[3][4], mat3[2][4]={0} ;
int i,j,k,l ;
clrscr();
//read mat1
for(i=0 ; i<2 ; i++)
for(j=0 ; j<3 ;j++) {
printf("tenter mat1[%d][%d]: ",i,j);
scanf("%d",&mat1[i][j]) ;
}
//read mat2
for(i=0 ; i<3 ; i++)
for(j=0 ; j<4 ;j++) {
printf("enter mat2[%d][%d]: ",i,j);
scanf("%d",&mat2[i][j]) ;
}
//multiply mat1 by mat2
for(i=0 ; i<2 ; i++)
for(j=0 ; j<4 ;j++) {
mat3[i][j]=0 ;
for(k=0 ;k<3 ; k++)
mat3[i][j] = mat3[i][j]+mat1[i][k]*mat2[k][j];
}
printf("\n the produc of mat1 & mat2") ;
printf(" is :\n\n") ;
for(i=0 ;i<2 ;i++) {
for(j=0 ; j<4 ;j++)
printf("%5d", mat3[i][j]) ;
printf("\n") ;
}
getch();
return 0;
}





سلام
میشه لطفا الگوریتم (نه برنامه) ضرب دو ماتریس رو هم بنویسید؟ من این سوال رو مطرح کردم و مدیر بخش من رو به این قسمت ارجاع دادن، اما من الگوریتم فارسی رو میخوام :ناراحت:

pesar irooni
سه شنبه 18 فروردین 1388, 14:22 عصر
کل الگوریتم همین هستش
فرض میکنیم ماتریس اول با ابعاد n*k و ماتریس دوم با ابعاد k*m باشد که حاصل ماتریسی میشود با ابعاد n*m که هر درایه آن به این صورت به دست آمده "سطر i ام ضرب در ستون j ام" که در خط آخر الگوریتم بوضوح مشاهده میشود.

for i=1 to n
for j=1 to m
for L=1 to K
mat3[i,j] = mat3[i,j] + mat1[i,L] * mat2[L,j]

mohammadnkh
چهارشنبه 26 فروردین 1388, 13:50 عصر
سلام لطفا" الگوریتم برنامه فرودگاه(landweber) رو بنویسید!
با تشکر...

Abtin@
سه شنبه 19 آذر 1398, 23:16 عصر
سلام
ببخشید الان اگه بخواییم یک کد برای یک ماتریس مربعی بنویسیم که اعداد خودش را مقایسه کند وکوچکترین عدد وهمین طور بزرگترین عدد برای زبان سیشارپ چطوری کدش رو بزنیم

the king
سه شنبه 19 آذر 1398, 23:38 عصر
سلام
ببخشید الان اگه بخواییم یک کد برای یک ماتریس مربعی بنویسیم که اعداد خودش را مقایسه کند وکوچکترین عدد وهمین طور بزرگترین عدد برای زبان سیشارپ چطوری کدش رو بزنیم

این سوال رو باید در انجمن زبان #C (https://barnamenevis.org/forumdisplay.php?26-C-%E2%80%8E) مطرح کنید. اول دو تا متغیر برای نگهداری مقدار حداقل مثلا min و مقدار حداکثر مثلا max تعریف می کنید و به هر دو مقدار یکی از خونه های ماتریس رو می دهید.
مهم نیست کدوم سطر و ستون باشه، مثلا مقدار خانه [0,0]
بعد داخل دو حلقه تو در تو در یکی سطر ها رو پیمایش می کنید و در یکی ستون ها، مثلا با x ستون ها و با y سطر ها، مثلا اگر ماتریس n در n باشه، از 0 الی n - 1 رو برای x و y پیمایش می کنید.
سپس داخل حلقه داخلی بررسی میکنید که :
اگر مقدار min از مقدار اون خونه [y,x] بیشتر بود مقدار اون خونه داخلش قرار بگیره.
و اگر مقدار max از مقدار اون خونه [y,x] کمتر بود مقدار اون خونه داخلش قرار بگیره.
وقتی اجرای این حلقه های تو در تو تموم بشه مقادیر حداقل و حداکثر داخل min و max بدست اومدن.