среда, 7 мая 2008 г.

Перемешивание

Индексы плохой и хорошей части популяции необходимо перемешать случайным образом.

// Код на SciLab

function ind = randperm(cnt)
[s,ind] = sort(rand(cnt,1)) ;
endfunction

gi = gi(randperm(length(gi))) ;
bi = gi(randperm(length(bi))) ;


// Код на C

void inline mix_ind(int *ind,int cnt)
{
int num,i,k ;

for(i=0;i<cnt;i++)
for(k=0;k<(cnt-1);k++)
if(rand_unf > 0.5)
{
num = ind[k+1] ;
ind[k+1] = ind[k] ;
ind[k] = num ;
}
}