该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
}
if((rand()/(double)RAND_MAX
Hybrid(ChildGene[i],ChildGene[i+1]);
}
for(i=0;i
for(a=0;a
ParentGene[i][a]=ChildGene[i][a];
}
}
void Mutate()
{
int i,pos1,pos2,temp;
if(rand()/(double)RAND_MAX
for(i=0;i
pos1=rand()%GENE_LENGTH;
pos2=rand()%GENE_LENGTH;
while(pos2==pos1)
pos2=rand()%GENE_LENGTH;
temp=ParentGene[i][pos1];
ParentGene[i][pos1]=ParentGene[i][pos2];
ParentGene[i][pos2]=temp;
}
}
}
int main()
{
struct time t,in;
long int z=1000000000;
int num=0;
double a;
gettime(&t);
printf("time:%2d:%2d:%2d.%2d\n",t.ti_hour,t.ti_min,t.ti_sec,t.ti_hund);
printf("********************************************************************************\n");
printf("任意键を入れると:");
scanf("%d",&in);
printf("%d-queen \n",GENE_LENGTH);
printf("********************************************************************************\n\n");
srand(time(NULL));
while(1){
Init();
while(z--){
GetFitness();
CreateNextGeneration();
Mutate();
if(5==GetFitness()){
printf("kaisu: %ld\n",1000000000-z);
num++;
printf("%d\n\n",num);
z=1000000000;
break;
}
}
if(num==50){
gettime(&t);
printf("time:%2d:%2d:%2d.%2d\n",t.ti_hour,t.ti_min,t.ti_sec,t.ti_hund);
break;
}
}
scanf("%d",&num);
return 0;
}