概率以数字降序递增

Ascending probabilities with descending numbers

本文关键字:降序 数字 概率      更新时间:2023-10-16

我想写代码,给出累积概率(0-1),每个数字按顺序递减。例如,

我有一组数字:

    150
    152
    155
    160
    175

我将用这种方式给这些数字一个概率:

第一个(150)的概率是= 175/total Sum

第二个是= 160/总和+前一个概率....等等......

要点是150会比其他人有更高的概率。

你有什么建议吗?

代码如下:

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]]