2007年9月30日 星期日

C 程式設計作業六,使用函數和隨機數:解題


/* C Programming, Project 6 */

#include <stdio.h>
#include <stdlib.h>
#define POP 50
int main(void)
{
double parent[3],parentFit,offspring[POP][3],oFit[POP];
int gen,i,j;

for (i=0;i<3;i++)
parent[i] = initPetPar();
parentFit = IQEval(parent[0], parent[1], parent[2]);
for (gen=1;gen<300;gen++) {

for (i=0;i<POP;i++) {
for (j=0;j<3;j++)
offspring[i][j] = parent[j] + (double)rand()/RAND_MAX*4-2.0;
oFit[i] = IQEval(offspring[i][0], offspring[i][1], offspring[i][2]);
}

for (i=0;i<POP;i++) {
if (oFit[i>parentFit) {
for (j=0;j<3;j++) {
parent[j] = offspring[i][j];
}
parentFit = oFit[i];
}
}
printf("%10.4f %10.4f %10.4f, parentFit=%10.4f\n", parent[0], parent[1], parent[2], parentFit);
}

system("pause");
return 0;
}

作業六題目
回到首頁

沒有留言: