gpt4 book ai didi

c++ - 有没有更有效的方法来计算百分比?

转载 作者:太空宇宙 更新时间:2023-11-04 15:50:37 25 4
gpt4 key购买 nike

我正在使用 boost/random.hpp 在区间 [1,3] 上用随机数填充 std::map 并且有点把一些东西放在一起,这些东西会给我每个计数的百分比生成数字的总量,但正在寻找一种可能更有效的方法。我一直试图在 boost 库中找到一些东西,但找不到完全相关的东西; boost 中有什么东西可以使用我的 map (我不想更改我的 map 类型)并计算 % 或我应该考虑的其他任何事情吗?

int main()
{
std::map <int, long> results;
int current;
long one = 0;
long two = 0;
long three = 0;
long total = 0;

boost::random::mt19937 rng;
rng.seed(static_cast<boost::uint32_t> (std::time(0)));
boost::random::uniform_int_distribution<int> random(1,3);

for (int n = 0; n < 1000000; ++n)
{
current = random(rng);
++total;

switch (current)
{
case 1:
++one;
break;
case 2:
++two;
break;
case 3:
++three;
break;
}
}

results[1] = one;
results[2] = two;
results[3] = three;

std::cout << (double) results[1]/total*100 << std::endl; // etc.
}

编辑:我不想以任何方式更改 map 容器。

最佳答案

您说您不想更改 map 类型,但我认为没有太多理由为此工作使用 map 。似乎显而易见的选择是 vector :

static const unsigned total = 1000000;

std::vector<unsigned> values(3);

for (int i=0; i<total; i++)
++values[random(rng)-1];

for (int i=0; i<values.size(); i++)
std::cout << (values[i] * 100.0) / total;

关于c++ - 有没有更有效的方法来计算百分比?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9249546/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com