#include #include #include #define P 16 // 1/2^P, P=16 #define Z 27000 // iteraciones #define N 30 // lado de la red simulada void llenar(int *red,int n,float prob); int hoshen(int *red,int n); int actualizar(int *red,int *clase,int s,int frag); void etiqueta_falsa(int *red,int *clase,int s1,int s2); void corregir_etiqueta(int *red,int *clase,int n); int percola(int *red,int n); int main(int argc,char *argv[]) { int i,j,*red; float prob,denominador; n=N; z=Z; if (argc==3) { sscanf(argv[1],"%d",&n); sscanf(argv[2],"%d",&z); } red=(int *)malloc(n*n*sizeof(int)); for(i=0;i0) { etiqueta_falsa(red+i+j,clase,s1,s2); } else { if (s1!=0) frag=actualizar(red+i+j,clase,s1,frag); else frag=actualizar(red+i+j,clase,s2,frag); } } } corregir_etiqueta(red,clase,n); free(clase): return 0; }