Averages/Pythagorean means: Difference between revisions

no edit summary
No edit summary
Line 160:
}
</lang>
 
=={{header|C++}}==
<lang C++>#include <vector>
#include <iostream>
#include <numeric>
#include <cmath>
#include <algorithm>
 
double toInverse ( int i ) {
return 1.0 / i ;
}
 
int main( ) {
std::vector<int> numbers ;
for ( int i = 1 ; i < 11 ; i++ )
numbers.push_back( i ) ;
double arithmetic_mean = std::accumulate( numbers.begin( ) , numbers.end( ) , 0 ) / 10.0 ;
double geometric_mean =
pow( std::accumulate( numbers.begin( ) , numbers.end( ) , 1 , std::multiplies<int>( ) ), 0.1 ) ;
std::vector<double> inverses ;
inverses.resize( numbers.size( ) ) ;
std::transform( numbers.begin( ) , numbers.end( ) , inverses.begin( ) , toInverse ) ;
double sum = 0.0 ;
std::vector<double>::iterator vd ;
for ( vd = inverses.begin( ) ; vd != inverses.end( ) ; vd++ )
sum += *vd ; //std::accumulate doesn't work for vector inverses!
double harmonic_mean = 10 / sum ;
std::cout << "The arithmetic mean is " << arithmetic_mean << " , the geometric mean "
<< geometric_mean << " and the harmonic mean " << harmonic_mean << " !\n" ;
return 0 ;
}</lang>
Output:
<pre>
The arithmetic mean is 5.5 , the geometric mean 4.52873 and the harmonic mean 3.41417 !
</pre>
 
=={{header|C sharp|C#}}==
262

edits