#include #include "histogram.hpp" using namespace std; bool find_minmax(const vector& numbers, double& minimum, double& maximum){ if (numbers.size() == 0) return 1; minimum = numbers[0]; maximum = numbers[0]; for (auto i : numbers) { if (i < minimum) minimum = i; if (i > maximum) maximum = i; } return 0; } vector make_histogram(const vector& numbers, size_t& bin_count) { vector baskets(bin_count); double basket_max; double basket_min; double basket_size; find_minmax(numbers, basket_min, basket_max); basket_size = (basket_max - basket_min) / bin_count; for (auto i = 0; i < bin_count; i++) { for (auto j = 0; j < numbers.size(); j++) { if ((numbers[j] >= (basket_min + i * basket_size) and numbers[j] < (basket_min + (i + 1) * basket_size)) or (i == bin_count - 1 and numbers[j] == basket_max)) { baskets[i]++; } } } return baskets; }