#include <bits/stdc++.h>
#define faster cin.tie(nullptr), cout.tie(nullptr), cin.sync_with_stdio(false), cout.sync_with_stdio(false);
#define f1(n) for( int i=1;i<n;i++)
#define f0(n) for(int i=0;i<n;++i)
#define f0j(n) for(int j=0;j<n;++j)
#define fe(v) for(auto & it:v)
#define yes cout<<"YES\n";
#define no cout<<"NO\n";
#define f first
#define s second
#define ll long long
#define d double
#define ld long double
#define INF 1e10
#define all(v) v.begin(),v.end()
const int Mod = 1e9+7;
const ll N = 10;
using namespace std;
void maka () {
#ifndef ONLINE_JUDGE
freopen("input.txt", "r", stdin);
freopen("output.txt", "w", stdout);
#endif
}
ll mul(ll a , ll b, ll m = Mod){
return (((a%m)*(b%m))%m);
}
ld power(ld b ,ll p){
ld res =1;
while(p){
if(p&1)res = res*b;
b = b*b;
p/=2;
}
return res;
}
ll add(ll a,ll b){
return ((a%Mod) + (b%Mod))%Mod;
}
struct DSU {
vector<int> p, r;
DSU(int n) {
p.resize(n + 1);
r.resize(n + 1, 0);
for (int i = 1; i <= n; ++i)
p[i] = i;
}
int get(int a) {
if (a == p[a]) return a;
return p[a] = get(p[a]);
}
bool join(int a, int b) {
a = get(a);
b = get(b);
if (a != b) {
if (r[a] < r[b]) {
swap(a,b);
}
p[b]=a;
if (r[a]==r[b])r[a]++;
return true;
}
return false;
}
};
ll fact[N], modinv[N];
void pre() {
fact[0] = 1;
for (int i = 1; i < N; i++)
fact[i] = i * fact[i - 1] ;
modinv[N - 1] = fact[N - 1];
for (int i = N - 2; i >= 0; i--)
modinv[i] = (i + 1) * modinv[i + 1];
}
void solve (){
string n;
cin>>n;
vector<int> digits;
fe(n){
digits.push_back(it-'0');
}
ld t = fact[n.length()];
sort(all(digits));
ld probale = 0;
f0(n.length()){
ld larger = digits.size()- (lower_bound(all(digits),n[i]-'0')-digits.begin()) -1;
ld res = larger * fact[digits.size()-1];
digits.erase(lower_bound(all(digits),n[i]-'0'));
probale+=res;
}
ld ans =0;
if(probale)
ans = powl(1/(ld)(t) +1,probale-1) * 1/(ld)(t);
cout<<fixed<<setprecision(9)<<ans<<'\n';
}
int main(){
faster
maka();
pre();
int t = 1;
cin>>t;
while(t--){
solve();
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZmFzdGVyIGNpbi50aWUobnVsbHB0ciksIGNvdXQudGllKG51bGxwdHIpLCBjaW4uc3luY193aXRoX3N0ZGlvKGZhbHNlKSwgY291dC5zeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwojZGVmaW5lIGYxKG4pIGZvciggaW50IGk9MTtpPG47aSsrKQojZGVmaW5lIGYwKG4pIGZvcihpbnQgaT0wO2k8bjsrK2kpCiNkZWZpbmUgZjBqKG4pIGZvcihpbnQgaj0wO2o8bjsrK2opCiNkZWZpbmUgZmUodikgZm9yKGF1dG8gJiBpdDp2KQojZGVmaW5lIHllcyBjb3V0PDwiWUVTXG4iOwojZGVmaW5lIG5vIGNvdXQ8PCJOT1xuIjsKI2RlZmluZSBmIGZpcnN0CiNkZWZpbmUgcyBzZWNvbmQKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBkIGRvdWJsZQojZGVmaW5lIGxkIGxvbmcgZG91YmxlCiNkZWZpbmUgSU5GIDFlMTAKI2RlZmluZSBhbGwodikgdi5iZWdpbigpLHYuZW5kKCkKY29uc3QgaW50IE1vZCA9IDFlOSs3Owpjb25zdCBsbCBOID0gMTA7CnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgp2b2lkIG1ha2EgKCkgewojaWZuZGVmIE9OTElORV9KVURHRQogICAgZnJlb3BlbigiaW5wdXQudHh0IiwgInIiLCBzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwgInciLCBzdGRvdXQpOwojZW5kaWYKfQpsbCBtdWwobGwgYSAsIGxsIGIsIGxsICBtID0gTW9kKXsKICAgIHJldHVybiAoKChhJW0pKihiJW0pKSVtKTsKfQpsZCBwb3dlcihsZCBiICxsbCBwKXsKICAgIGxkIHJlcyA9MTsKICAgIHdoaWxlKHApewogICAgICAgIGlmKHAmMSlyZXMgPSByZXMqYjsKICAgICAgICBiID0gYipiOwogICAgICAgIHAvPTI7CiAgICB9CiAKICAgIHJldHVybiByZXM7Cn0KbGwgYWRkKGxsIGEsbGwgYil7CiAgICByZXR1cm4gKChhJU1vZCkgKyAoYiVNb2QpKSVNb2Q7Cgp9CgpzdHJ1Y3QgRFNVIHsKICAgIHZlY3RvcjxpbnQ+IHAsIHI7CiAKICAgIERTVShpbnQgbikgewogICAgICAgIHAucmVzaXplKG4gKyAxKTsKICAgICAgICByLnJlc2l6ZShuICsgMSwgMCk7CiAgICAgICAgZm9yIChpbnQgaSA9IDE7IGkgPD0gbjsgKytpKQogICAgICAgICAgICBwW2ldID0gaTsKICAgIH0KIAogICAgaW50IGdldChpbnQgYSkgewogICAgICAgIGlmIChhID09IHBbYV0pIHJldHVybiBhOwogICAgICAgIHJldHVybiBwW2FdID0gZ2V0KHBbYV0pOwogICAgfQogCiAgICBib29sIGpvaW4oaW50IGEsIGludCBiKSB7CiAgICAgICAgYSA9IGdldChhKTsKICAgICAgICBiID0gZ2V0KGIpOwogICAgICAgIGlmIChhICE9IGIpIHsKICAgICAgICAgICAgaWYgKHJbYV0gPCByW2JdKSB7CiAgICAgICAgICAgICAgICBzd2FwKGEsYik7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgcFtiXT1hOwogICAgICAgICAgICBpZiAoclthXT09cltiXSlyW2FdKys7CiAgICAgICAgICAgIHJldHVybiB0cnVlOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZmFsc2U7CiAgICB9Cn07CmxsIGZhY3RbTl0sIG1vZGludltOXTsKIAp2b2lkIHByZSgpIHsKICAgIGZhY3RbMF0gPSAxOwogICAgZm9yIChpbnQgaSA9IDE7IGkgPCBOOyBpKyspCiAgICAgICAgZmFjdFtpXSA9IGkgKiBmYWN0W2kgLSAxXSA7CiAgICBtb2RpbnZbTiAtIDFdID0gZmFjdFtOIC0gMV07CiAgICBmb3IgKGludCBpID0gTiAtIDI7IGkgPj0gMDsgaS0tKQogICAgICAgIG1vZGludltpXSA9IChpICsgMSkgKiBtb2RpbnZbaSArIDFdOwp9CiAKCnZvaWQgc29sdmUgKCl7CnN0cmluZyBuOwpjaW4+Pm47CiAKdmVjdG9yPGludD4gZGlnaXRzOwpmZShuKXsKICAgIGRpZ2l0cy5wdXNoX2JhY2soaXQtJzAnKTsgCn0KbGQgdCA9IGZhY3Rbbi5sZW5ndGgoKV07CnNvcnQoYWxsKGRpZ2l0cykpOwpsZCBwcm9iYWxlID0gMDsKZjAobi5sZW5ndGgoKSl7CiAgICAgbGQgbGFyZ2VyID0gIGRpZ2l0cy5zaXplKCktIChsb3dlcl9ib3VuZChhbGwoZGlnaXRzKSxuW2ldLScwJyktZGlnaXRzLmJlZ2luKCkpIC0xOwogCiAgICBsZCByZXMgPSBsYXJnZXIgKiBmYWN0W2RpZ2l0cy5zaXplKCktMV07CiAgIGRpZ2l0cy5lcmFzZShsb3dlcl9ib3VuZChhbGwoZGlnaXRzKSxuW2ldLScwJykpOwogCiAgIHByb2JhbGUrPXJlczsKfSAKIApsZCBhbnMgPTA7CmlmKHByb2JhbGUpCmFucyA9IHBvd2woMS8obGQpKHQpICsxLHByb2JhbGUtMSkgKiAxLyhsZCkodCk7CmNvdXQ8PGZpeGVkPDxzZXRwcmVjaXNpb24oOSk8PGFuczw8J1xuJzsKfQoKCmludCBtYWluKCl7CiAgICBmYXN0ZXIKICAgIG1ha2EoKTsKICAgIHByZSgpOwogICAgaW50IHQgPSAxOwogICAgY2luPj50OwogICAgd2hpbGUodC0tKXsKICAgIHNvbHZlKCk7CiAgICB9Cn0=