総当たり

遺伝パターンを総当たりで調べるプログラム。
これは4V以上の割合を調べるもの。

#include

int p1[6] = {20,31,31,23,31,31};
int p2[6] = {17,31, 5,31,31,31};
int c[6];
int d[6];
double iden(int);
int check(void);

main(){
  int i,j,k,l,n=0;
  double sum=0.0;
  for(i=0; i<6; i++){
    for(j=1; j<6; j++){
      for(k=1; k<6; k++){

	for(l=0; l<6; l++){
	  d[l]=0;
	}
	d[i]=1;
	d[j]=1;
	d[k]=1;
	
	sum += iden(0);

	

	if(k==1)k++;
	printf("%d /120 finished.  sum = %f\n",++n,sum);
      }
    }
  }
  sum /= 120;
  printf("result : %f\n",sum);
}
double iden(int id){
  double res=0;
  int i;

  if(id==6){
    res = check();
  }else if(d[id]==1){
    c[id]=p1[id];
    res += iden(id+1);
    
    c[id]=p2[id];
    res += iden(id+1);
    
    res = (double)res/2.0;
  }else{
    for(i=0; i<32; i++){
      c[id]=i;
      res += iden(id+1);
    }
    res = (double)res/32.0;
  }
  return res;
}
int check(void){
  int i;
  int res=0;
  for(i=0; i<6; i++){
    if(c[i]==31)
      res++;
  }
  return res>3 ? 1: 0;
}