#include <bits/stdc++.h>
using namespace std;
const int N = 55;
vector<int> e[N];
double f[N][N], g[N];
double fac[N], inv[N];
int n, sz[N];
void init() {
  fac[0] = inv[0] = 1;
  for (int i = (int)(1); i <= (int)(N - 1); i++) fac[i] = fac[i - 1] * i;
  for (int i = (int)(1); i <= (int)(N - 1); i++) inv[i] = inv[i - 1] / i;
}
double C(int x, int y) { return fac[x] * inv[y] * inv[x - y]; }
void dfs(int x, int fa) {
  for (int i = (int)(0); i <= (int)(n); i++) f[x][i] = 0;
  f[x][1] = 1;
  sz[x] = 1;
  for (auto y : e[x])
    if (y != fa) {
      dfs(y, x);
      for (int i = (int)(0); i <= (int)(n); i++) g[i] = 0;
      for (int i = (int)(1); i <= (int)(sz[x]); i++)
        for (int j = (int)(1); j <= (int)(sz[y]); j++)
          for (int l = (int)(0); l <= (int)(sz[y]); l++)
            g[i + l] += f[x][i] * f[y][min(j, l + 1)] * C(i + l - 1, i - 1) *
                        C(sz[x] - i + sz[y] - l, sz[x] - i) *
                        (j <= l ? 0.5 : 1);
      sz[x] += sz[y];
      for (int i = (int)(0); i <= (int)(sz[x]); i++) f[x][i] = g[i];
    }
}
int main() {
  init();
  scanf("%d", &n);
  for (int i = (int)(1); i <= (int)(n - 1); i++) {
    int x, y;
    scanf("%d%d", &x, &y);
    e[x].push_back(y);
    e[y].push_back(x);
  }
  for (int i = (int)(1); i <= (int)(n); i++) {
    dfs(i, 0);
    printf("%.10lf\n", f[i][n] * inv[n - 1]);
  }
  puts("");
}
