import math

import itertools



N = int(eval(input()))

xy = []

for _ in range(N):

    xy.append(list(map(int, input().split())))



def get_dist(a, b):

    return math.sqrt((a[0] - b[0])**2 + (a[1] - b[1])**2)



ans = 0

n = 0

for p in itertools.permutations(xy, N):

    d = 0

    for i in range(len(p)-1):

        d += get_dist(p[i], p[i+1])

    ans += d

    n += 1



print((ans / n))

# https://atcoder.jp/contests/abc145/tasks/abc145_c



def INT(): return int(eval(input()))

def MAP(): return list(map(int, input().split()))

def LIST(): return list(map(int, input().split()))

INF = float("inf")

import itertools



N = INT()

xy = [tuple(MAP()) for _ in range(N)]



dist_list=[]

for i in itertools.permutations(xy, N):

    dist = 0

    for j in range(1, N):

        dist += ((i[j-1][0]-i[j][0])**2 + (i[j-1][1]-i[j][1])**2)**0.5

    dist_list.append(dist)



print((sum(dist_list)/len(dist_list)))



import math
import itertools

N = int(eval(input()))
xy = []
for _ in range(N):
    xy.append(list(map(int, input().split())))


def get_dist(a, b):
    return math.sqrt((a[0] - b[0]) ** 2 + (a[1] - b[1]) ** 2)


ans = 0
n = 0
for p in itertools.permutations(xy, N):
    d = 0
    for i in range(len(p) - 1):
        d += get_dist(p[i], p[i + 1])
    ans += d
    n += 1
print((ans / n))

# https://atcoder.jp/contests/abc145/tasks/abc145_c
def INT():
    return int(eval(input()))


def MAP():
    return list(map(int, input().split()))


def LIST():
    return list(map(int, input().split()))


INF = float("inf")
import itertools

N = INT()
xy = [tuple(MAP()) for _ in range(N)]
dist_list = []
for i in itertools.permutations(xy, N):
    dist = 0
    for j in range(1, N):
        dist += ((i[j - 1][0] - i[j][0]) ** 2 + (i[j - 1][1] - i[j][1]) ** 2) ** 0.5
    dist_list.append(dist)
print((sum(dist_list) / len(dist_list)))

-import math +# https://atcoder.jp/contests/abc145/tasks/abc145_c +def INT(): +    return int(eval(input())) + + +def MAP(): +    return list(map(int, input().split())) + + +def LIST(): +    return list(map(int, input().split())) + + +INF = float("inf") -N = int(eval(input())) -xy = [] -for _ in range(N): -    xy.append(list(map(int, input().split()))) - - -def get_dist(a, b): -    return math.sqrt((a[0] - b[0]) ** 2 + (a[1] - b[1]) ** 2) - - -ans = 0 -n = 0 -for p in itertools.permutations(xy, N): -    d = 0 -    for i in range(len(p) - 1): -        d += get_dist(p[i], p[i + 1]) -    ans += d -    n += 1 -print((ans / n)) +N = INT() +xy = [tuple(MAP()) for _ in range(N)] +dist_list = [] +for i in itertools.permutations(xy, N): +    dist = 0 +    for j in range(1, N): +        dist += ((i[j - 1][0] - i[j][0]) ** 2 + (i[j - 1][1] - i[j][1]) ** 2) ** 0.5 +    dist_list.append(dist) +print((sum(dist_list) / len(dist_list)))