#include using std::cin; using std::cout; typedef long long ll; using db = long double; const int N = 300; db a[N][N | 1], b[N][N | 1]; db ans[N | 1]; inline void init() { for(int i = 0;i < 1 << 8;++i) { int l = 0, r = 0, L = 8, score = 0, state = i; again: for(;l < L;++l) { r = l; for(;r < L && (state >> r & 1) == (state >> l & 1);) ++ r; if(r - l >= 3) { score += (r - l) * (r - l); state = (state & (1 << l) - 1) | state >> r << l; L -= r - l; l = 0; goto again; } } if(L < 8) { for(int p = 0;p < 256;p += 1 << L) { a[i][state | p] = 1. / (1 << 8 - L); } a[i][256] = score; } a[i][i] -= 1; } memcpy(b, a, sizeof(a)); } inline void gs() { const db eps = 1e-13; for(int i = 0;i < 256;++i) { if(fabs(a[i][i]) < eps) { for(int j = i + 1;j < 256;++j) { if(fabs(a[j][i]) > eps) { std::swap(a[i], a[j]); break; } } } for(int j = i + 1;j < 256;++j) { const db sub = a[j][i] / a[i][i]; for(int k = i;k <= 256;++k) { a[j][k] -= a[i][k] * sub; } } } for(int i = 255;i >= 0;--i) { db su = a[i][256]; for(int j = i + 1;j < 256;++j) su += ans[j] * a[i][j]; if(fabs(a[i][i]) < eps) exit(1); ans[i] = -su / a[i][i]; } } int main() { std::ios::sync_with_stdio(false), cin.tie(0); init(); gs(); int test; cin >> test; for(int i = 0, o = 0;i < test;++i) { o = 0; for(int j = 0;j < 8;++j) { char c; cin >> c; o |= (c & 1) << j; } cout << std::setprecision(10) << ans[o] << '\n'; } }