#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define rt return #define FOR(i,j,k) for(int i=j; i<(int)k;++i) #define rep(i,j) for(int i=0;i<(int)j;++i) #define rep1(i,j) for(int i=1;i<=(int)j;++i) #define each(x,y) for(auto &(x):(y)) #define mp make_pair #define mt make_tuple #define pb_ push_back #define eb_ emplace_back #define fi_ first #define se_ second #define all(x) (x).begin(),(x).end() #define debug(x) cout<<#x<<": "<<(x)< pii; typedef vector vi; vector> combinations(int n){ auto res = vector>(n + 1, vector(n + 1)); rep(i, n + 1) res[i][0] = 1; for(int i = 1; i <= n; ++i) for(int j = 1; j <= i; ++j) res[i][j] = (res[i - 1][j - 1] + res[i - 1][j]); return res; } vector C; int N; void solve(){ C = combinations(N); double ans = 1.0, p; for(int i = 2; i <= N; ++i){ // card i // はさまれる FOR(j, 1, i)FOR(k, j + 1, i){ p = (i - 2.0) / i; p *= 1.0 / C[i-1][2]; ans += p*j*k; } // 端 p = 2.0 / i; ans += p*1.0; } printf("%0.15f\n", ans); } int main(){ while(cin >> N){ solve(); } }