首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >计算概率

计算概率
EN

Stack Overflow用户
提问于 2017-10-25 04:27:43
回答 1查看 137关注 0票数 0

所以,我试图计算成对向量中特定密钥的概率。向量中的每个特定键都有一个特定的权重,为了计算该密钥的特定概率,我必须将向量中所有键的权重相加在一起,然后再将其除以总数。

到目前为止我的情况是这样的。

代码语言:javascript
复制
  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);
    }

这是主要的。

代码语言:javascript
复制
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的结果。我做错什么了?

提前感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-10-25 04:34:36

这是因为您使用的是整数和除法,它将自动取小数之前的部分(作为整数)。

将数据类型更改为浮动,这将修复它!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46924008

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档