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