سوال: ضرب ماتریس ها با تابع بازگشتی(بیاین با هم کاملش کنیم)

ساخت وبلاگ
#include <iostream.h>
#include <conio.h>

void add(int *A,int *B,int *C,int n)
{
//A[i][j] A[i*n+j]
for(int i=0;i<n;i++)
for(int j=0;j<n;j++)
//C[i][j]=A[i][j]+B[i][j]
C[i*n+j]=A[i*n+j]+B[i*n+j];
}
void merge(int *a,int *b,int i,int j,int n)
{
}
void copy(int *a,int *b,int i,int j,int n)
{
}

void mul(int *A,int *B,int *C,int n)
{
int m=n/2;
int * A11=new int[m*m];
copy(A,A11,0,0,m);
copy(A,A12,0,m,m);
copy(A,A21,m,0,m);
copy(A,A22,m,m,m);

copy(B,B11,0,0,m);
copy(B,B12,0,m,m);
copy(B,B21,m,0,m);
copy(B,B22,m,m,m);

mul(A11,B11,t1,m);
mul(A12,B21,t2,m);
add(t1,t2,C11,m);

mul(A11,B12,t1,m);
mul(A12,B22,t2,m);
add(t1,t2,C12,m);

mul(A21,B11,t1,m);
mul(A22,B21,t2,m);
add(t1,t2,C21,m);

mul(A21,B12,t1,m);
mul(A22,B22,t2.m);
add(t1,t2,C22,m);

merge(C11,C,0,0,m);
merge(C12,C,0,m,m);
merge(C21,C,m,0,m);
merge(C22,C,m,m,m);

delete A11;

}
void main()
{

}

برنامه نویس...
ما را در سایت برنامه نویس دنبال می کنید

برچسب : نویسنده : محمد رضا جوادیان programers بازدید : 114 تاريخ : شنبه 7 فروردين 1395 ساعت: 2:45