#include #include #include #include using u64 = uint64_t; struct xor64 { using result_type = u64; u64 x = 88172645463325252ULL; static constexpr u64 max() { return std::numeric_limits::max(); } static constexpr u64 min() { return std::numeric_limits::min(); } u64 operator()() { x = x ^ (x << 7); return x = x ^ (x >> 9); } }; int main(){ int n; std::cin >> n; double range = 1 / (M_E * M_PI * M_PI); xor64 rand; std::uniform_real_distribution<> dist(0, range); double sum = 0; constexpr int N = 10000000; for(int i = 0; i < N; ++i){ sum += exp(cos(dist(rand) / n)); } std::cout << std::setprecision(16) << sum / N * range << std::endl; }