#include<bits/stdc++.h>
using namespace std;
using f128=long double;
using poly=vector<f128>;
poly mul(poly f,poly g){
poly h(f.size()+g.size()-1);
for(int i=0;i<f.size();i++)for(int j=0;j<g.size();j++)
h[i+j]+=f[i]*g[j];
return h;
}
f128 calc(poly f,f128 x){f128 r=0;for(int i=f.size()-1;i>=0;i--)r=r*x+f[i];return r;}
poly Int(poly f){
int n=f.size();f.push_back(0);
for(int i=n;i;i--)f[i]=f[i-1]/i;f[0]=0;
return f;
}
int n;
basic_string<int>G[60];
poly dfs(int u,int fa){
poly f{1};
for(int v:G[u])if(v!=fa){
poly a=dfs(v,u),b=Int(a);
b[0]=calc(b,1)/2;
for(int i=1;i<b.size();i++)b[i]=a[i-1]-b[i]/2;
f=mul(f,b);
}return f;
}
int main(){
cin>>n;
for(int u,v,i=1;i<n;i++)scanf("%d%d",&u,&v),G[u]+=v,G[v]+=u;
for(int i=1;i<=n;i++)printf("%.20Lf\n",dfs(i,0)[0]+1e-9);
return 0;
}