2017-10-25 15 views
0

그래서, 쌍의 벡터 내에서 특정 키의 확률을 계산하려고 시도하고 있습니다. 벡터 내의 각 특정 키는 특정 가중치를 가지며, 그 키의 특정 확률을 계산하기 위해 벡터 내의 모든 키의 가중치를 합한 다음 그 합계를 그 합계로 나눠야합니다.확률 계산

여기까지 제가 지금까지 가지고 있습니다.

double probability(KEY_T key) const 
    { 
     int MAX = 0; 
     int TARGET = 0; 
     int size = _valueToWeightMap.size(); 


     for (int x = 0; x < size; x++) 
     { 
      if (_valueToWeightMap[x].first == key) 
      { 
       TARGET = _valueToWeightMap[x].second; 
      } 
      MAX += _valueToWeightMap[x].second; 
     } 

     return (TARGET/MAX); 
    } 

그리고 이것이 주요 내용입니다.

int main() 
{ 
    DiscreteDistribution<std::string> dist1; 

    dist1.add("Helmet", 1); 
    dist1.add("Gloves", 5); 
    dist1.add("cloud", 8); 




    std::cout << dist1.probability("cloud") << std::endl; 


    system("pause"); 

어떤 이유로 든 나는 계속 결과를 얻고 있습니다. 무엇이 잘못 될 수 있습니까?

미리 감사드립니다.

+0

정수부. 4/5 = 0. 관련이 없지만 UPPER의 경우 변수를 보면 상수 일 것으로 예상됩니다. –

답변

0

는 정수와 분할을 사용하고 있기 때문에 이것은, 자동

변경 떠 데이터 유형 (정수임) 소수점 전에 만 참여할 것, 그게 해결한다!