Cumulative standard deviation: Difference between revisions
Content added Content deleted
m (→{{header|OCaml}}: whitespace) |
No edit summary |
||
Line 105: | Line 105: | ||
return 0; |
return 0; |
||
}</lang> |
|||
=={{header|C++}}== |
|||
<lang C++>#include <algorithm> |
|||
#include <iostream> |
|||
#include <iterator> |
|||
#include <cmath> |
|||
#include <vector> |
|||
#include <iterator> |
|||
#include <numeric> |
|||
double standard_dev( std::vector<double> & ) ; |
|||
int main( ) { |
|||
double demoset[] = { 2 , 4 , 4 , 4 , 5, 5 , 7 , 9 } ; |
|||
int demosize = sizeof demoset / sizeof *demoset ; |
|||
std::vector<double> numbers ; |
|||
for ( double *d = demoset ; d != demoset + demosize ; ++d ) |
|||
numbers.push_back( *d ) ; |
|||
std::cout << "The standard deviation of\n" ; |
|||
std::copy( numbers.begin( ) , numbers.end( ) , std::ostream_iterator<double>( std::cout, " " ) ) ; |
|||
std::cout << "\nis " << standard_dev( numbers ) << " !\n" ; |
|||
return 0 ; |
|||
} |
|||
double standard_dev( std::vector<double> & numbers ) { |
|||
double mean = std::accumulate( numbers.begin( ) , numbers.end( ) , 0 ) / numbers.size( ) ; |
|||
std::vector<double> squares ; |
|||
for( std::vector<double>::const_iterator vdi = numbers.begin( ) ; vdi != numbers.end( ) ; vdi++ ) |
|||
squares.push_back( pow( *vdi - mean , 2 ) ) ; |
|||
return pow( std::accumulate( squares.begin( ) , squares.end( ) , 0 ) / squares.size( ) , 0.5 ) ; |
|||
}</lang> |
}</lang> |
||