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の場合の変数を見れば、定数になるはずです... –