#include <bits/stdc++.h>
using namespace std;
const int INF = INT_MAX;
const long long INFL = LLONG_MAX;
const long double pi = acos(-1);
int N;
int P[100100];
vector<int> adj[100100];
long double ans[100100];
int sz[100100];
void dfs(int u) {
  long double tot = 0;
  for (int(i) = 0; (i) < (int((adj[u]).size())); (i)++) {
    tot += sz[adj[u][i]];
  }
  for (int(i) = 0; (i) < (int((adj[u]).size())); (i)++) {
    int v = adj[u][i];
    ans[v] = (tot - sz[v]) / 2.0;
    ans[v] += ans[u] + 1;
  }
  for (int(i) = 0; (i) < (int((adj[u]).size())); (i)++) {
    int v = adj[u][i];
    dfs(v);
  }
}
void dfs2(int u) {
  int s = 1;
  for (int(i) = 0; (i) < (int((adj[u]).size())); (i)++) {
    int v = adj[u][i];
    dfs2(v);
    s += sz[v];
  }
  sz[u] = s;
}
int main() {
  ios_base::sync_with_stdio(0);
  cout.precision(12);
  cout << fixed;
  cout.tie(0);
  cin.tie(0);
  cin >> N;
  for (int i = 2; i <= N; i++) {
    int x;
    cin >> x;
    adj[x].push_back(i);
    P[i] = x;
  }
  ans[1] = 1;
  dfs2(1);
  dfs(1);
  for (int(i) = 1; (i) <= (N); (i)++) {
    cout << ans[i] << " ";
  }
  cout << '\n';
}
