#include <bits/stdc++.h>
using namespace std;
int get() {
  char ch;
  while (ch = getchar(), (ch < '0' || ch > '9') && ch != '-')
    ;
  if (ch == '-') {
    int s = 0;
    while (ch = getchar(), ch >= '0' && ch <= '9') s = s * 10 + ch - '0';
    return -s;
  }
  int s = ch - '0';
  while (ch = getchar(), ch >= '0' && ch <= '9') s = s * 10 + ch - '0';
  return s;
}
const int N = 55;
double f[N][N];
double f1[N], g1[N];
int siz[N];
int fa[N];
int e[N][N];
int s[N];
int n;
bool vis[N];
double c[N][N];
void dfs(int x) {
  vis[x] = 1;
  siz[x] = 0;
  for (int t = 1; t <= s[x]; t++) {
    int y = e[x][t];
    if (!vis[y]) {
      fa[y] = x;
      dfs(y);
      siz[x] += siz[y] + 1;
    }
  }
  for (int i = 0; i <= n; i++) f[x][i] = 0;
  int pre = 0;
  f[x][0] = 1;
  for (int t = 1; t <= s[x]; t++) {
    int y = e[x][t];
    if (fa[y] == x) {
      for (int i = 0; i <= pre + siz[y] + 1; i++) f1[i] = 0;
      for (int px = 1; px <= pre; px++)
        for (int py = 1; py <= siz[y] + 1; py++) {
          for (int w = px; w <= siz[y] + 1 + px; w++)
            if (py - 1 + px - 1 >= w - 1)
              f1[w] = f1[w] + f[x][px] * f[y][py] * c[w - 1][px - 1] *
                                  c[pre + siz[y] + 1 - w][pre - px];
          for (int w = py; w <= pre + py; w++)
            if (py - 1 + px - 1 >= w - 1)
              f1[w] = f1[w] + f[x][px] * f[y][py] * c[w - 1][py - 1] *
                                  c[pre + siz[y] + 1 - w][siz[y] + 1 - py];
        }
      f1[0] = f[x][0] * f[y][0] * c[pre + siz[y] + 1][pre];
      for (int px = 1; px <= pre; px++)
        for (int w = px; w <= siz[y] + 1 + px; w++)
          f1[w] = f1[w] + f[x][px] * f[y][0] * c[w - 1][px - 1] *
                              c[pre + siz[y] + 1 - w][pre - px];
      for (int py = 1; py <= siz[y] + 1; py++)
        for (int w = py; w <= pre + py; w++)
          f1[w] = f1[w] + f[x][0] * f[y][py] * c[w - 1][py - 1] *
                              c[pre + siz[y] + 1 - w][siz[y] + 1 - py];
      for (int i = 0; i <= pre + siz[y] + 1; i++) f[x][i] = f1[i];
      pre += siz[y] + 1;
    }
  }
  for (int i = 0; i <= pre + 1; i++) f1[i] = 0;
  for (int px = 1; px <= pre; px++) {
    f1[px + 1] = f1[px + 1] + f[x][px] * px;
    for (int w = 1; w <= px; w++) f1[w] = f1[w] - f[x][px] * (0.5);
  }
  f1[0] = f1[0] + f[x][0] * (pre + 1);
  for (int w = 1; w <= pre + 1; w++) f1[w] = f1[w] - f[x][0] * (0.5);
  for (int i = 0; i <= pre + 1; i++) f[x][i] = f1[i];
}
int main() {
  n = get();
  c[0][0] = 1;
  for (int i = 1; i <= n; i++) {
    c[i][0] = 1;
    for (int j = 1; j <= i; j++) c[i][j] = c[i - 1][j - 1] + c[i - 1][j];
  }
  for (int i = 2; i <= n; i++) {
    int x = get(), y = get();
    e[x][++s[x]] = y;
    e[y][++s[y]] = x;
  }
  for (int st = 1; st <= n; st++) {
    for (int i = 1; i <= n; i++) vis[i] = 0, fa[i] = 0;
    dfs(st);
    double ans = 1;
    for (int t = 1; t <= s[st]; t++) {
      int x = e[st][t];
      double tmp = 0;
      for (int i = 0; i <= siz[x] + 1; i++) tmp = tmp + f[x][i];
      for (int i = 1; i <= siz[x] + 1; i++) tmp = tmp / i;
      ans = ans * tmp;
    }
    printf("%.9lf\n", ans);
  }
  return 0;
}
