#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
vector<int> v[N];
int p[N], s[N];
double ans[N];
void dfs(int now) {
  s[now] = 1;
  for (int i = 0; i < v[now].size(); i++) {
    dfs(v[now][i]);
    s[now] += s[v[now][i]];
  }
}
void dfs2(int now) {
  for (int i = 0; i < v[now].size(); i++) {
    ans[v[now][i]] = ans[now] + 1 + (s[now] - s[v[now][i]] - 1) / 2.0;
    dfs2(v[now][i]);
  }
}
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 2; i <= n; i++) {
    scanf("%d", &p[i]);
    v[p[i]].push_back(i);
  }
  ans[1] = 1;
  dfs(1);
  dfs2(1);
  for (int i = 1; i <= n; i++) {
    printf("%.10lf ", ans[i]);
  }
}
