#include // ket nxn-es martix szorzasa Strassen-modszerrel, ahol n ketto hatvanya #include FILE * f; int ** lefoglal(int n) // dinamikusan helyet foglal egy matrixnak { int i; int **m=(int**)malloc(n*sizeof(int*)); for (i=0; i1) { m= n/2, x1=lefoglal(m); x2=lefoglal(m);x3=lefoglal(m);x4=lefoglal(m);x5=lefoglal(m); x6=lefoglal(m);x7=lefoglal(m); c11= lefoglal(m); c12= lefoglal(m); c21= lefoglal(m); c22= lefoglal(m); x1= mult(add(valaszt(a,11,n),valaszt(a,22,n), m), add(valaszt(b,11,n),valaszt(b,22,n),m), m); x2= mult(add(valaszt(a,21,n),valaszt(a,22,n), m), valaszt(b,11,n), m); x3= mult(valaszt(a,11,n),sub(valaszt(b,12,n), valaszt(b,22,n), m),m); x4= mult(valaszt(a,22,n),sub(valaszt(b,21,n), valaszt(b,11,n), m),m); x5= mult(add(valaszt(a,11,n),valaszt(a,12,n), m), valaszt(b,22,n), m); x6= mult(sub(valaszt(a,21,n),valaszt(a,11,n), m), add(valaszt(b,11,n),valaszt(b,12,n),m), m); x7= mult(sub(valaszt(a,12,n),valaszt(a,22,n), m), add(valaszt(b,21,n),valaszt(b,22,n),m), m); c11=add(sub(add(x1,x4,m),x5,m),x7,m); c12=add(x3,x5,m); c21=add(x2,x4,m); c22=add(sub(add(x1,x3,m),x2,m),x6,m); c=betesz(c11,c12,c21,c22,n); felszabadit(x1,m);felszabadit(x2,m);felszabadit(x3,m);felszabadit(x4,m);felszabadit(x5,m); felszabadit(x6,m);felszabadit(x7,m); felszabadit(c11,m); felszabadit(c12,m); felszabadit(c21,m); felszabadit(c22,m); } else c[0][0]= a[0][0]*b[0][0]; return c; }; int main() { f= fopen("be.txt","r"); int i,j; int n; int **a, **b, **c; fscanf(f,"%d", &n); // allomanybol olvassa az n erteket, amely kettonek hatvanya kell, hogy legyen, // de ezt nem ellenorzi a program a=lefoglal(n); // helyet foglal az a matrixnak b=lefoglal(n); // helyet foglal az b matrixnak for (i=0; i