I can't figure out why... Can you help a bit?
Here are the auxiliar files: Attachment 11954
Code:#include<stdio.h> #include<stdlib.h> #include<math.h> #include "mersenne.c" #define alpha 0.85 #define NN 1000 int nr=0; void sortare(double *v1, int *v2, int lun){ int i, modif, aux; double aux2; do{ modif=0; for(i=1;i<lun;++i) if(v1[i-1] < v1[i]) { aux2=v1[i-1]; v1[i-1]=v1[i]; v1[i]=aux2; aux=v2[i-1]; v2[i-1]=v2[i]; v2[i]=aux; modif=1; } }while(modif); }; /* double *prodLinieMatrice(int m, double *pi, double **G) { int i,j; double p; p=0; for(i=0;i<m;i++) { for(j=1;j<m;j++) p=p+pi[i]*G[i][j]; } return p; }*/ double norma(int m, double *v) { int i; double sum=0; for(i=0;i<m;i++) sum=sum+v[i]*v[i]; return sqrt(sum); } double *diferentaV(int m, double *v, double *w) { int i; double *dif; if((dif=(double*)malloc(m*sizeof(double*)))==NULL) { printf("Eroare la alocare dinamica"); exit(1); } for(i=0;i<m;i++) dif[i]=v[i]-w[i]; return dif; } int *simDistr(double *pi,double **g,int n,int m) { double u,F,*p; int j,k,i,*s; if((s=(int*)malloc(n*sizeof(int)))==NULL) { printf("Eroare la alocare dinamica"); exit(1); } if((p=(double*)malloc(m*sizeof(double)))==NULL) { printf("Eroare la alocare dinamica"); exit(1); } j=0; u=genrand_real2(); F=pi[0]; while(u>F) { j=j+1; F=F+pi[j]; } s[0]=j; i=s[0]; for(k=0;k<n;k++) { p=g[i]; j=0; u=genrand_real2(); F=p[0]; while(u>F) { j=j+1; F=F+p[j]; } s[k]=j; i=s[k]; } return s; } int main(void) { FILE *f,*k; int m=13; int i,j,z,*lm,**H; double **Q,**G,**e; f=fopen("hyperlink.in","rt"); if(!f) { printf("eroare la fisier"); exit(1); } if((H=(int**)malloc(m*sizeof(int*)))==NULL) { printf("Eroare la alocare dinamica"); exit(1); } for(i=0;i<m;i++) H[i]=(int*)malloc(m*sizeof(int)); for(i=0;i<m;i++) for(j=0;j<m;j++) fscanf(f,"%d",&H[i][j]); if((Q=(double**)malloc(m*sizeof(double*)))==NULL) { printf("Eroare la alocare dinamica"); exit(1); } for(i=0;i<m;i++) Q[i]=(double*)malloc(m*sizeof(double)); for(i=0;i<m;i++) for(j=0;j<=m;j++) Q[i][j]=0; for(i=0;i<m;i++) { int k=0; for(j=0;j<m;j++) if(H[i][j]!=0) k++; if(k!=0) { for(j=0;j<m;j++) if(H[i][j]==1) Q[i][j]=1.0/k; } else if(k==0) for(z=0;z<m;z++) Q[i][z]=1.0/m; } if((G=(double**)malloc(m*sizeof(double*)))==NULL) { printf("Eroare la alocare dinamica"); exit(1); } for(i=0;i<m;i++) G[i]=(double*)malloc(m*sizeof(double)); printf("\n aici \n"); if((e=(double**)malloc(m*sizeof(double*)))==NULL) { printf("Eroare la alocare dinamica"); exit(1); } for(i=0;i<m;i++) e[i]=(double*)malloc(m*sizeof(double)); for(i=0;i<m;i++) for(j=0;j<m;j++) e[i][j]=1.0/m; for(i=0;i<m;i++) for(j=0;j<m;j++) G[i][j]=alpha*Q[i][j]+(1-alpha)*e[i][j]; for(i=0;i<m;i++) for(j=0;j<m;j++) printf("%.3lf ",G[i][j]); fclose(f); fclose(k); system("pause"); return 0; }



LinkBack URL
About LinkBacks



