from itertools import permutations





def dfs(p, bit):

    res = 0

    for k in range(n):

        if bit >> k & 1:

            continue

        d = ((x[k] - x[p]) ** 2 + (y[k] - y[p]) ** 2) ** 0.5

        res += d + dfs(k, bit | (1 << k))

    return res





n = int(eval(input()))

x = [0] * n

y = [0] * n

for i in range(n):

    x[i], y[i] = list(map(int, input().split()))



ans = 0

# for i in range(n):

#     ans += dfs(i, 1 << i)

# for i in range(n):

#     ans /= i + 1

for li in list(permutations(list(range(n)), n)):

    tmp = 0

    for i in range(n - 1):

        p = li[i]

        k = li[i + 1]

        tmp += ((x[k] - x[p]) ** 2 + (y[k] - y[p]) ** 2) ** 0.5

    ans += tmp

for i in range(n):

    ans /= i + 1



print(ans)

from math import hypot, factorial





def dfs(d, p):

    if all(used):

        return d

    res = 0

    for i in range(n):

        if used[i]:

            continue

        used[i] = True

        res += dfs(d + hypot(x[i] - x[p], y[i] - y[p]), i)

        used[i] = False

    return res





n = int(eval(input()))

x = [0] * n

y = [0] * n

for i in range(n):

    x[i], y[i] = list(map(int, input().split()))



ans = 0

used = [False] * n

for i in range(n):

    used[i] = True

    ans += dfs(0, i)

    used[i] = False

ans /= factorial(n)



print(ans)

from itertools import permutations


def dfs(p, bit):
    res = 0
    for k in range(n):
        if bit >> k & 1:
            continue
        d = ((x[k] - x[p]) ** 2 + (y[k] - y[p]) ** 2) ** 0.5
        res += d + dfs(k, bit | (1 << k))
    return res


n = int(eval(input()))
x = [0] * n
y = [0] * n
for i in range(n):
    x[i], y[i] = list(map(int, input().split()))
ans = 0
# for i in range(n):
#     ans += dfs(i, 1 << i)
# for i in range(n):
#     ans /= i + 1
for li in list(permutations(list(range(n)), n)):
    tmp = 0
    for i in range(n - 1):
        p = li[i]
        k = li[i + 1]
        tmp += ((x[k] - x[p]) ** 2 + (y[k] - y[p]) ** 2) ** 0.5
    ans += tmp
for i in range(n):
    ans /= i + 1
print(ans)

from math import hypot, factorial


def dfs(d, p):
    if all(used):
        return d
    res = 0
    for i in range(n):
        if used[i]:
            continue
        used[i] = True
        res += dfs(d + hypot(x[i] - x[p], y[i] - y[p]), i)
        used[i] = False
    return res


n = int(eval(input()))
x = [0] * n
y = [0] * n
for i in range(n):
    x[i], y[i] = list(map(int, input().split()))
ans = 0
used = [False] * n
for i in range(n):
    used[i] = True
    ans += dfs(0, i)
    used[i] = False
ans /= factorial(n)
print(ans)

-from itertools import permutations +from math import hypot, factorial -def dfs(p, bit): +def dfs(d, p): +    if all(used): +        return d -    for k in range(n): -        if bit >> k & 1: +    for i in range(n): +        if used[i]: -        d = ((x[k] - x[p]) ** 2 + (y[k] - y[p]) ** 2) ** 0.5 -        res += d + dfs(k, bit | (1 << k)) +        used[i] = True +        res += dfs(d + hypot(x[i] - x[p], y[i] - y[p]), i) +        used[i] = False -# for i in range(n): -#     ans += dfs(i, 1 << i) -# for i in range(n): -#     ans /= i + 1 -for li in list(permutations(list(range(n)), n)): -    tmp = 0 -    for i in range(n - 1): -        p = li[i] -        k = li[i + 1] -        tmp += ((x[k] - x[p]) ** 2 + (y[k] - y[p]) ** 2) ** 0.5 -    ans += tmp +used = [False] * n -    ans /= i + 1 +    used[i] = True +    ans += dfs(0, i) +    used[i] = False +ans /= factorial(n)