我正在做一个项目,我需要计算用户将输入的整数 vector 的频率分布。该分布将分为 10 个范围。我只是想不通如何正确地通过 vector 并调整每个间隔的最小值和最大值。这是我写的内容,我知道它离我很远(另外,x 是 vector 的名称:
double range = max - min;
double interval = ceil(range / 10);
double frequency = 0.0;
for (vector<int>::iterator it = x.begin(); it < x.end(); it++)
{
if (*it > min)
{
min = (min + interval);
min = *it;
}
if (*it < max)
{
max = min + interval;
max = *it;
}
if (*it >= min && *it <= max)
++frequency;
最佳答案
将 vector 划分为 vector 的 HashMap 。将初始 vector 中的值推回桶集中,并使用 std::min_element 和 std::max_element 找到每个范围中的最小/最大值。
我会发布伪代码,但我在手机上。
关于c++ - 计算整数 vector 的频率分布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21886059/