我想编写代码,为每个递减的数字赋予累积概率(0-1)。例如;
我有一组号码:
150
152
155
160
175
我将以这种方式给这些数字一个概率:
第一个(150)概率是= 175 /总和
第二个是= 160 /总和+先前的概率...等等。
要点是150将比其他概率更高。
你对我有什么建议。集将包含30多个数字...
这是代码:
int ll;
float prefitness=0;//Previous fittnesses
int minus =0;
for (int sdf=0;sdf<PopulationSize;sdf++)//population size is the total number counts
{
ll=sortindex[sdf];//sortindex is an array with numbers in ascending order
Sol_list[ll].fittness=(double)Sol_list[PopulationSize-1-minus].PortfolioDuration/sum+prefitness;
prefitness=Sol_list[ll].fittness;
minus++;
}
float move=0;
int xc;
for (int yj=0;yj<PopulationSize;yj++)
{
xc=sortindex[yj];
Sol_list[xc].fittnesspre =move;
move=Sol_list[xc].fittness;
}
最佳答案
您的问题是您没有在Sol_list的所有访问权限中使用排序索引。这是错误的:
Sol_list[PopulationSize-1-minus]
应该说:
Sol_list[sortindex[PopulationSize-1-minus]]