Вы не можете выбрать более 25 тем
			Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.
		
		
		
		
		
			
		
			
				
	
	
		
			36 строки
		
	
	
		
			948 B
		
	
	
	
		
			C++
		
	
			
		
		
	
	
			36 строки
		
	
	
		
			948 B
		
	
	
	
		
			C++
		
	
#include "histogram.h"
 | 
						|
static void
 | 
						|
find_minmax(const std::vector<double>& numbers, double& min, double& max) {
 | 
						|
    min = numbers[0];
 | 
						|
    max = numbers[0];
 | 
						|
    for (double x : numbers)
 | 
						|
    {
 | 
						|
        if (x < min) min = x;
 | 
						|
        else if (x > max) max = x;
 | 
						|
    }
 | 
						|
}
 | 
						|
 | 
						|
std::vector <size_t>
 | 
						|
make_histogram(const std::vector<double>& numbers, size_t bucket, size_t number_count) {
 | 
						|
    std::vector <size_t> stolb(bucket);
 | 
						|
    double min, max;
 | 
						|
    find_minmax(numbers, min, max);
 | 
						|
    float k = (max - min) / bucket;
 | 
						|
    for (size_t i = 0; i < bucket; i++) stolb[i] = 0;
 | 
						|
    for (size_t i = 0; i < number_count; i++)
 | 
						|
    {
 | 
						|
        bool flag = false;
 | 
						|
        for (size_t j = 0; (j < bucket && !flag); j++)
 | 
						|
        {
 | 
						|
            if (numbers[i] >= (min + k * j) && numbers[i] < (min + k * (1 + j)))
 | 
						|
            {
 | 
						|
                stolb[j]++;
 | 
						|
                flag = true;
 | 
						|
 | 
						|
            }
 | 
						|
        }
 | 
						|
        if (!flag) stolb[bucket - 1]++;
 | 
						|
    }
 | 
						|
    return stolb;
 | 
						|
}
 |