import Data.List
import qualified Data.Vector as V

main = do
  n <- readLn :: IO Int
  zs <- map (map read . words) <$> lines <$> getContents :: IO [[Int]]
  let ps = permutations [0..(n-1)]
  putStrLn $ show $ (\x -> x / fromIntegral (length ps)) $ distSum ps $ V.fromList zs

foldlState :: (c -> a -> b -> (c, a)) -> c -> a -> [b] -> a
foldlState f s a l = snd $ foldl (\(s, a) -> f s a) (s, a) l

distSum :: [[Int]] -> V.Vector [Int] -> Double
distSum ps zs = foldl (+) 0 $ map (\path -> foldlState step [] 0 path) ps
    where step [] a k = (zs V.! k, a)
          step z a k = let y = zs V.! k in (y, a + dist z y)

dist :: [Int] -> [Int] -> Double
dist [x1, y1] [x2, y2] = sqrt $ fromIntegral $ (x1-x2)^2+(y1-y2)^2
