Advertisement
Guest User

Untitled

a guest
Feb 19th, 2020
108
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.47 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <algorithm>
  4. #include <string>
  5. #define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))
  6.  
  7.  
  8. int Dispersion(std::vector<int> vec) {
  9.     int meanVec = 0; // Среднее значение чисел вектора
  10.     int sum = 0; // сумма всех элементов массива
  11.     int dispNum = 0; // Дисперсия
  12.  
  13.     for (int i : vec) {
  14.         sum += i;
  15.     }
  16.    
  17.     meanVec = sum / vec.size();
  18.    
  19.     for (int i : vec) {
  20.         dispNum += ((i - meanVec) * (i - meanVec)) / vec.size();
  21.        
  22.     }
  23.  
  24.     return dispNum;
  25. }
  26.  
  27.  
  28. double closeNum(std::vector<double> vec, double R) {
  29.     double min = abs(vec.at(0) - R);
  30.     double output = 0.0;
  31.  
  32.     for (double x : vec) {
  33.         if (abs(x - R) <= min) {
  34.             min = abs(x - R);
  35.             output = x;
  36.         }
  37.     }
  38.     return output;
  39. }
  40.  
  41.  
  42. std::vector<int> EqNums(std::vector<int> vec) {
  43.     std::vector<int> mas1;
  44.     std::vector<int> mas2;
  45.     std::vector<int> mas3;
  46.  
  47.     int prev = vec[0];
  48.     int  counter = 0;
  49.  
  50.     for (int i = 0; i < vec.size(); i++) {
  51.         if (prev != vec[i]) {
  52.             counter = 0;
  53.             prev = vec[i];
  54.         }
  55.         mas2.push_back(counter++);
  56.     }
  57.  
  58.     counter = 0;
  59.     prev = vec[vec.size()-1];
  60.     for (int i = vec.size()-1; i >= 0; --i) {
  61.         if (prev != vec[i]) {
  62.             counter = 0;
  63.             prev = vec[i];
  64.         }
  65.         mas1.push_back(counter++);
  66.     }
  67.  
  68.     std::reverse(std::begin(mas1), std::end(mas1));
  69.  
  70.     for (int i = 0; i < mas2.size(); i++) {
  71.         mas3.push_back(mas1[i] > mas2[i] ? mas2[i] : mas1[i]);
  72.     }
  73.  
  74.     return mas3;
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement