総当たり
遺伝パターンを総当たりで調べるプログラム。
これは4V以上の割合を調べるもの。
#includeint 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; }