Я работаю над проектом, и мне нужно рассчитать частотное распределение вектора int, который будет вводить пользователь. Распределение будет разделено на 10 диапазонов. Я просто не могу окутать голову, как правильно пройти вектор и отрегулировать минимальные и максимальные значения каждого интервала. Вот что я написал, что я знаю, это далеко (и, х это имя вектора:.Вычисление частотного распределения для вектора ints
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;
что вы хотите сделать, просто создайте гистограмму. Каждый раз, когда значение, которое вы получаете, находится в определенном диапазоне, добавьте 1 в «ведро», которое содержит этот диапазон. Кроме того, вам нужно использовать вектор или вы можете уйти с помощью простого массива? Знаете ли вы max и min распределения раньше времени, или вам нужно рассчитать, что, пробегая вектор в первый раз? – trumpetlicks
Для _go через вектор правильно_, измените 'it
timrau
@timrau спасибо. Я знал об окончании итераторов таким образом, что просто забыл ввести его! – Cartemis