2017-10-25 13 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を得ています。何が間違っていますか?

ありがとうございます!

+0

整数除算。 4/5 = 0.無関係ですが、UPPERの場合の変数を見れば、定数になるはずです... –

答えて

0

あなたは整数と分割を使用しているので、これは、それが自動的に

変更floatへのデータ型(整数)の小数の前にだけ参加します、それはそれを修正する必要があります!