#include <bits/stdc++.h>
using namespace std;
const int N = 55;
vector<int> v[N];
double f[N][N], g[N][N];
int n, __size[N], x, y;
void dfs(int x, int y) {
  g[x][0] = 1;
  for (int i : v[x])
    if (i != y) {
      dfs(i, x);
      for (int j = __size[x]; j >= 0; j--) {
        double v = g[x][j];
        g[x][j] = 0;
        for (int k = 0; k <= __size[i]; k++) g[x][j + k] += v * f[i][k];
      }
      __size[x] += __size[i];
    }
  for (int i = 0; i <= __size[x]; i++) {
    double tmp = 0.5 * g[x][i];
    for (int j = 0; j <= i; j++) {
      f[x][i - j] += tmp;
      tmp *= 1.0 * (i - j) / (__size[x] + 1 - i + j);
    }
  }
  for (int i = 0; i <= __size[x]; i++) f[x][i] /= (__size[x] + 1 - i);
  for (int i = 0; i <= __size[x]; i++) f[x][i + 1] += g[x][i];
  __size[x]++;
}
int main() {
  scanf("%d", &n);
  for (int i = 1; i < n; i++) {
    scanf("%d%d", &x, &y);
    v[x].push_back(y);
    v[y].push_back(x);
  }
  for (int i = 1; i <= n; i++) {
    memset(f, 0, sizeof f);
    memset(g, 0, sizeof g);
    memset(__size, 0, sizeof __size);
    double ans = 1;
    for (int j : v[i]) dfs(j, i), ans *= f[j][0];
    printf("%.15lf\n", ans);
  }
}
