# C - Average Length



N = int(eval(input()))

P = [tuple(map(int, input().split())) for _ in range(N)]



def calcDist(Y):

    dist = 0

    for i in range(1, len(Y)):

        dist += pow(pow(P[Y[i]][0] - P[Y[i-1]][0], 2) + pow(P[Y[i]][1] - P[Y[i-1]][1], 2), 0.5)

    return dist



def dfs(X):

    global ans

    if len(X)==N:

        ans.append(calcDist(X))

        return

    for i in range(N):

        if i not in X:

            X.append(i)

            dfs(X)

            X.pop()



ans = []

X = []

dfs(X)



print((sum(ans)/len(ans)))



# C - Average Length



import itertools



N = int(eval(input()))

P = [tuple(map(int, input().split())) for _ in range(N)]



def calcDist(Y):

    dist = 0

    for i in range(1, len(Y)):

        dist += pow(pow(P[Y[i]][0] - P[Y[i-1]][0], 2) + pow(P[Y[i]][1] - P[Y[i-1]][1], 2), 0.5)

    return dist



def dfs(X):

    global ans

    if len(X)==N:

        ans.append(calcDist(X))

        return

    for i in range(N):

        if i not in X:

            X.append(i)

            dfs(X)

            X.pop()



ans = []

X = []

#dfs(X)



for X in itertools.permutations(list(range(N)),N):

    ans.append(calcDist(X))



print((sum(ans)/len(ans)))



# C - Average Length
N = int(eval(input()))
P = [tuple(map(int, input().split())) for _ in range(N)]


def calcDist(Y):
    dist = 0
    for i in range(1, len(Y)):
        dist += pow(
            pow(P[Y[i]][0] - P[Y[i - 1]][0], 2) + pow(P[Y[i]][1] - P[Y[i - 1]][1], 2),
            0.5,
        )
    return dist


def dfs(X):
    global ans
    if len(X) == N:
        ans.append(calcDist(X))
        return
    for i in range(N):
        if i not in X:
            X.append(i)
            dfs(X)
            X.pop()


ans = []
X = []
dfs(X)
print((sum(ans) / len(ans)))

# C - Average Length
import itertools

N = int(eval(input()))
P = [tuple(map(int, input().split())) for _ in range(N)]


def calcDist(Y):
    dist = 0
    for i in range(1, len(Y)):
        dist += pow(
            pow(P[Y[i]][0] - P[Y[i - 1]][0], 2) + pow(P[Y[i]][1] - P[Y[i - 1]][1], 2),
            0.5,
        )
    return dist


def dfs(X):
    global ans
    if len(X) == N:
        ans.append(calcDist(X))
        return
    for i in range(N):
        if i not in X:
            X.append(i)
            dfs(X)
            X.pop()


ans = []
X = []
# dfs(X)
for X in itertools.permutations(list(range(N)), N):
    ans.append(calcDist(X))
print((sum(ans) / len(ans)))

+import itertools + -dfs(X) +# dfs(X) +for X in itertools.permutations(list(range(N)), N): +    ans.append(calcDist(X))