Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <vector>
- #include <algorithm>
- #include <string>
- #define isleap(y) (((y) % 4) == 0 && (((y) % 100) != 0 || ((y) % 400) == 0))
- int Dispersion(std::vector<int> vec) {
- int meanVec = 0; // Среднее значение чисел вектора
- int sum = 0; // сумма всех элементов массива
- int dispNum = 0; // Дисперсия
- for (int i : vec) {
- sum += i;
- }
- meanVec = sum / vec.size();
- for (int i : vec) {
- dispNum += ((i - meanVec) * (i - meanVec)) / vec.size();
- }
- return dispNum;
- }
- double closeNum(std::vector<double> vec, double R) {
- double min = abs(vec.at(0) - R);
- double output = 0.0;
- for (double x : vec) {
- if (abs(x - R) <= min) {
- min = abs(x - R);
- output = x;
- }
- }
- return output;
- }
- std::vector<int> EqNums(std::vector<int> vec) {
- std::vector<int> mas1;
- std::vector<int> mas2;
- std::vector<int> mas3;
- int prev = vec[0];
- int counter = 0;
- for (int i = 0; i < vec.size(); i++) {
- if (prev != vec[i]) {
- counter = 0;
- prev = vec[i];
- }
- mas2.push_back(counter++);
- }
- counter = 0;
- prev = vec[vec.size()-1];
- for (int i = vec.size()-1; i >= 0; --i) {
- if (prev != vec[i]) {
- counter = 0;
- prev = vec[i];
- }
- mas1.push_back(counter++);
- }
- std::reverse(std::begin(mas1), std::end(mas1));
- for (int i = 0; i < mas2.size(); i++) {
- mas3.push_back(mas1[i] > mas2[i] ? mas2[i] : mas1[i]);
- }
- return mas3;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement