2011-08-24 7 views
1

내림차순으로 내림차순으로 누적 확률 (0-1)을주는 코드를 작성하고 싶습니다. 예를 들어;숫자가 내림차순으로 오름차순

150 
    152 
    155 
    160 
    175 

제가 그 숫자를 이와 같이 확률 줄 것이다 :

I는 다수의 설정

먼저 하나를 (150) 확률 = 175/총합

인 두 번째 것은 = 160/totalsum + 이전 확률 .... 등입니다.

요점은 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; 
} 
+1

귀하의 문제는 너무 간단하고 당신은 그것을 두 번째 시간을 구문 분석하고 벡터를 만들 :

Sol_list[PopulationSize-1-minus] 

그것은 말을해야 가능성과 함께. 아니면 대답으로 기대하는 다른 것입니까? –

+0

네, 간단합니다. 나는 코드를 가지고있다. 때로는 숫자가 너무 가까울수록 확률 값이 너무 가깝고 규칙에 따르지 않는 숫자가 있습니다 (숫자가 오름차순, 확률 강하 ... 문제가 해결되지 않음). 차이는 너무 작지만 솔루션에 영향을 미칩니다. 반올림 오류 또는 smt로 인해.이 간단한 질문을 부탁하는 이유는 바로 그것을하고 있는지 여부 chech입니다 ... 감사합니다 – furkan

+0

당신이 기존 코드가 맞는지 아닌지 알고 싶다면 코드를 게시해야합니다 ! 아무도 당신을 어떻게 도와 줄 수 있습니까? – john

답변

0

귀하의 문제는 당신이 Sol_list의 모든 액세스에 정렬 된 인덱스를 사용하지 않는 것입니다. 이것은 잘못된 것입니다 : 당신이 합계를 얻기 위해 한 번 세트를 구문 분석 ..

Sol_list[sortindex[PopulationSize-1-minus]] 
+0

고마워. 내 문제가 해결되었습니다. – furkan

+0

당신은 꽤 환영합니다 –

+0

ISTM 거기에 여분의 변수 마이너스 필요가 없습니다. sdf와 같아야합니다. –

관련 문제