#include "histogram.h" #include using namespace std; void find_minmax(const vector& numbers, double& min, double& max) { min = numbers[0]; max = numbers[0]; for (float x : numbers) { if (x < min) min = x; else if (x > max) max = x; } } vector make_histogram(const vector& numbers, size_t bin_count) { double min, max; find_minmax(numbers, min, max); float k = (max - min) / bin_count; vector bins(bin_count, 0); for (double number : numbers) { bool flag = false; for (size_t j = 0; (j < bin_count && !flag); j++) { if (number >= (min + k * j) && number < (min + k * (j + 1))) { bins[j]++; flag = true; } } if (!flag) bins[bin_count - 1]++; } return bins; }