/****************************************************/ /* The Cell Suppression Problem (CSP) */ /* in Statistical Disclosure Control (SDC) */ /* */ /* SDCGEN.c */ /* Version 0.0.1 */ /* */ /* Matteo FISCHETTI & Juan Jose SALAZAR GONZALEZ */ /* */ /* Last modified 15 July 1995 */ /****************************************************/ #include #include #define OBJ0 /*******************************************/ #define Cell(i,j) (i)*(N2+1)+(j) #define MAX 500 #define MIN 5 #define SEN 5 main(argc,argv) int argc; char *argv[]; { int N1,N2,PER,DEN,i,j,l,r1,r2; FILE *file; unsigned seed; int *data,*weight; N1 = 12; N2 = 12; file = fopen("gordon.csp","w"); if( file==NULL ){ printf("ERROR: it is not possible to open file %s\n",argv[4]); return(1); } data = (int *)calloc( (N1+1)*(N2+1) , sizeof(int) ); weight = (int *)calloc( (N1+1)*(N2+1) , sizeof(int) ); for(i=1;i<=N1;i++){ for(j=1;j<=N2;j++){ if( (i==4 && j==4) || (i==9 && j==9) || (i==1 && j==1) || (i==12 && j==12) || i==j-1 || i==j+1 ) l=2; else l=0; data[Cell(i,j)] = l; data[Cell(0,j)] += l; data[Cell(i,0)] += l; data[0] += l; } } for(i=1;i<=N1;i++) for(j=1;j<=N2;j++) if(data[Cell(i,j)]) weight[ Cell(i,j) ] = 1; fprintf(file,"2\n %ld %ld\n",N1,N2); for(i=0;i<=N1;i++) for(j=0;j<=N2;j++){ l = data[ Cell(i,j) ]; fprintf(file,"%3ld %3ld %3ld %3ld ",i,j, data[ Cell(i,j) ] , weight[ Cell(i,j) ]); if( (i==4 && j==4) || (i==9 && j==9) ) fprintf(file,"u 1.0 3.0 %d %d 0\n",l-1,l+1); else if(l==2) fprintf(file,"s 1.0 3.0 %d %d 0\n",l,l); else fprintf(file,"z %d.0 %d.0 %d %d 0\n",l,l,l,l); } fclose(file); free( (void *)data ); free( (void *)weight ); return(0); }