Родитель
							
								
									1a18eacae5
								
							
						
					
					
						Сommit
						bbd1176de8
					
				| @ -0,0 +1,51 @@ | ||||
| #pragma once | ||||
| 
 | ||||
| #include <iostream> | ||||
| #include <vector> | ||||
| 
 | ||||
| #include "histogram.h" | ||||
| 
 | ||||
| using namespace std; | ||||
| 
 | ||||
| 
 | ||||
| 
 | ||||
| void find_minmax(vector <double> numbers, double& min, double& max) { | ||||
|     min = numbers[0]; | ||||
|     max = numbers[0]; | ||||
|     for (int i = 0; i < numbers.size(); i++){ | ||||
|         if (numbers[i] < min) | ||||
|                     min = numbers[i]; | ||||
|         if (numbers[i] > max) | ||||
|                     max = numbers[i]; | ||||
| 
 | ||||
| 
 | ||||
| } | ||||
| } | ||||
| 
 | ||||
| vector<size_t> make_histogram(  vector<double> numbers,  size_t bin_count){ | ||||
| vector<size_t> bins(bin_count); | ||||
| 
 | ||||
| double min,max; | ||||
| 
 | ||||
| find_minmax( numbers, min, max); | ||||
| 
 | ||||
| double bin_size = (max - min) / bin_count; | ||||
| 
 | ||||
| for (size_t i = 0; i < numbers.size(); i++){ | ||||
|           bool found = false; | ||||
|           for (size_t j = 0; (j < bin_count - 1) && !found; j++){ | ||||
|                   auto lo = min + j * bin_size; | ||||
|                   auto hi = min + (j + 1) * bin_size; | ||||
|                   if ((lo <= numbers[i]) && (numbers[i] < hi)){ | ||||
|                            bins[j]++; | ||||
|                            found = true; | ||||
|                    } | ||||
|            } | ||||
|            if (!found){ | ||||
|                  bins[ bin_count - 1]++; | ||||
|            } | ||||
| } | ||||
| 
 | ||||
| return bins; | ||||
| } | ||||
| 
 | ||||
					Загрузка…
					
					
				
		Ссылка в новой задаче