/* -*- coding: utf-8 -*- * * 301.cc: No.301 サイコロで確率問題 (1) - yukicoder */ #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; /* constant */ const int MAX_N = 1000; /* typedef */ typedef long long ll; /* global variables */ double es[MAX_N + 1]; /* subroutines */ double check(double d, ll n) { es[0] = 0.0; for (int i = 1; i <= n; i++) { double sum = 0.0; for (int j = 1; j <= 6; j++) sum += (i >= j) ? es[i - j] : d; es[i] = 1.0 + sum / 6; } return es[n]; } /* main */ int main() { int tn; cin >> tn; while (tn--) { ll n; cin >> n; if (n > MAX_N) { printf("%.13lf\n", 5.0 / 3 + n); continue; } double l = 0.0, r = 1e10; for (int i = 0; i < 100; i++) { double d = (l + r) / 2; if (check(d, n) >= d) l = d; else r = d; } printf("%.13lf\n", l); } return 0; }