题意:给你n个数字,让你求出其中任意两个数互质所占的比重,求出 ;根据题意6/ ^2 == (互质组数)/(总数C(N,2 ));
其次,控制精度即可
// File Name: 1059.cpp // Author: bo_jwolf // Created Time: 2014年02月03日 星期一 20时45分14秒 #include<vector> #include<list> #include<map> #include<set> #include<deque> #include<stack> #include<bitset> #include<algorithm> #include<functional> #include<numeric> #include<utility> #include<sstream> #include<iostream> #include<iomanip> #include<cstdio> #include<cmath> #include<cstdlib> #include<cstring> #include<ctime> using namespace std; const int maxn =100005; int num[ maxn ]; int Gcd( int a, int b ){ return b == 0 ? a : Gcd( b, a % b ); } int main(){ int n; while( cin >> n ){ if( !n ) break; for( int i = 0; i < n; ++i ) cin >> num[ i ]; int ans = 0; for( int i = 0; i < n; ++i ){ for( int j = 0; j < i; ++j ){ if( Gcd( num[ i ], num[ j ] ) == 1 ){ ans++; } } } double temp = 2.0 * ans / n / ( n - 1 ); if( ans ){ printf( "%.6lf\n", sqrt( 6.0 / temp ) ); } else{ puts( "No estimate for this data set." ); } } return 0; }