// RETURNS A RANDOM ELEMENT rho=[0,N-1] BASED ON FITNESS
int roulette_wheel(double fitness[], int N){
double f_sum=0.0, r, F, temp;
int k=0;
for (int j=0; j<N; N++) {
f_sum=fitness[j];
}
r=rand()%f_sum+1.0; //(invalid operands to binary expression ('double' and 'double'))
F=1.0/fitness[k];
while (F<r) {
k++;
F=F+1.0/fitness[k];
}
return k;
}
我不知道为什么那部分会说无效的操作数...我认为我的代码是正确的。
答案 0 :(得分:0)
再次重申上述评论以澄清: 您不能在浮点数上使用模数。
然而,一个名为fmod()的函数可以为您提供两个浮点数的余数。