واضح آرشیو وب فارسی:سایت ریسک: توضیح در مورد ضرب ماتریس اسپارس shahinshyd 02 ارديبهشت 1390, 20:20با سلام سر کلاس استاد یه سورس ماتریس اسپاریس نوشت که من هیچی نفهمیدم اگه از اساتید کسی سورس++c ضرب ماتریس اپارس رو داره با یه توضیح بذاره باتشکر seyed pouria 02 ارديبهشت 1390, 23:25سلام دوست عزیز در ماتریس های اسپارس همانطور که می دانید تعداد خانه های صفر ( یک مدل ) زیاد است پس صرفه به استفاده از روش معمولی نیست . حتما با روش ذخیره سازی این نوع ماتریس ها آشنا هستید . باید در هر مرحله عنصر k ام سطر i ام از ماتریس اول را در عنصر k ام از ستون j ام از ماتریس دوم را در هم ضرب کرد و حاصل را به عنوان عنصر در مکان i , j از ماتریس سوم قرار داد . نکته مهم این است که حاصل ضرب دو ماتریس اسپارس حتما یک ماتریس اسپارس نخواهد بود . عمل بالا را می توان با سه حلقه for تو در تو پیاده سازی کرد و برای جستجو هم از جستجوی خطی ساده استفاده کرد . برای اطلاعات بیشتر : کتاب ساختمان داده ها در ++ C مهندس جعفر نژاد قمی #include<iostream.h> #include<conio.h> #include<stdlib.h> int **arr,**bb,*t,*p; int main() { clrscr(); int i,j,x,y,a=2,b=1,z=0,u=3; cout<<"enter x:"; cin>>x; cout<<"enter y:"; cin>>y; p=(int *)malloc(sizeof(int)* x); for(i=1;i<=x;i++) arr[i]=(int *)malloc(y * sizeof(int)); for(i=1;i<=x;i++) for(j=1;j<=y;j++) { cout<<"enter arr["<<i<<"]["<<j<<"]="; cin>>arr[i][j]; } for(i=1;i<=x;i++) for(j=1;j<=y;j++) if(arr[i][j]!=0 )z++; t=(int *)malloc(u * sizeof(int)); for(i=1;i<x;i++) bb[i]=(int *) malloc(z * sizeof(int)); bb[1][1]=x; bb[1][2]=y; bb[1][3]=z; for(i=1;i<=x;i++) for(j=1;j<=y;j++) if(arr[i][j]!=0) { bb[a][b]=i; b++; bb[a][b]=j; b++; bb[a][b]=arr[i][j]; b=1; a++; } for(i=1;i<=(z+1);i++) for(j=1;j<=3;j++) { cout<<bb[i][j]; if (j==3) cout<<endl; } getch(); return 0; } shahinshyd 04 ارديبهشت 1390, 20:14باسلام دوست من مثل اینکه من سوال خودمو درست نگفتم من میخواستم که این برنامه دوتا ماتریس اپارس گرفته و در هم ضرب کنه لطفا راهنمایی کنید سایت ما را در گوگل محبوب کنید با کلیک روی دکمه ای که در سمت چپ این منو با عنوان +1 قرار داده شده شما به این سایت مهر تأیید میزنید و به دوستانتان در صفحه جستجوی گوگل دیدن این سایت را پیشنهاد میکنید که این امر خود باعث افزایش رتبه سایت در گوگل میشود
این صفحه را در گوگل محبوب کنید
[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 8934]