#include <bits/stdc++.h>
using namespace std;
long double dp[55][55], p[55], c[55][55], f[55];
int size[55];
vector<int> g[55];
void dfs(int u, int fa) {
  dp[u][0] = 1.0;
  size[u] = 1;
  for (int i = 0; i < (int)g[u].size(); i++) {
    int v = g[u][i];
    if (v == fa) continue;
    dfs(v, u);
    for (int i = 0; i <= size[v]; i++) {
      p[i] = 0.0;
      for (int j = 0; j < i; j++) p[i] += dp[v][j] * 0.5;
      p[i] += dp[v][i] * (size[v] - i);
    }
    for (int i = 0; i < size[u] + size[v]; i++) f[i] = 0;
    for (int i = 0; i < size[u]; i++) {
      for (int j = 0; j <= size[v]; j++) {
        f[i + j] += dp[u][i] * p[j] * c[i + j][i] *
                    c[size[u] - 1 - i + size[v] - j][size[u] - 1 - i];
      }
    }
    size[u] += size[v];
    for (int i = 0; i < size[u]; i++) dp[u][i] = f[i];
  }
}
int main() {
  int n, a, b;
  scanf("%d", &n);
  for (int i = 1; i < n; i++) {
    scanf("%d%d", &a, &b);
    g[a].push_back(b);
    g[b].push_back(a);
  }
  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] + c[i - 1][j - 1];
  }
  for (int rt = 1; rt <= n; rt++) {
    dfs(rt, -1);
    long double ans = dp[rt][n - 1];
    for (int i = 1; i < n; i++) ans /= i;
    printf("%.15lf\n", (double)ans);
  }
  return 0;
}
