fork download
  1. #include <iostream>
  2. #include <functional>
  3. #include<algorithm>
  4. #include <vector>
  5. #include <numeric>
  6. #include <iostream>
  7. #include <vector>
  8. #include <functional>
  9.  
  10. using namespace std;
  11.  
  12. double get_variance(const std::vector<short>& signal, double mean, size_t start, size_t window_size)
  13. {
  14. if (window_size == 0) {
  15. return 0;
  16. }
  17. auto start_it = signal.begin() + start;
  18. return std::inner_product(
  19. start_it,
  20. start_it + window_size,
  21. start_it,
  22. 0.0,
  23. std::plus<>(),
  24. [mean, window_size](short s1, short s2)
  25. { return (s1 - mean) * (s2 - mean) / static_cast<double>(window_size); }
  26. );
  27. }
  28.  
  29. int main() {
  30. vector<short> vec = {600 , 470 , 170 , 430 , 300};
  31. std::cout<<get_variance(vec, 394, 0, 5)<<endl;
  32. return 0;
  33. }
Success #stdin #stdout 0s 15232KB
stdin
Standard input is empty
stdout
21704