Simulations reveal that the expected value of the highest score is close to $62$ and that of the lowest score is close to $37$.
Here is the code for a million trials.
import numpy as np n_players = 100n_reps = 1000000res = np.zeros(n_players)upper_ones = np.ones((n_players,n_players))upper_ones = np.triu(upper_ones, 1)summand = np.dot(upper_ones.T, np.ones(n_players))for _ in range(n_reps): sample = np.random.randint(0, 2, size=(n_players,n_players)) sample = np.triu(sample) scores = summand + np.dot(sample - (sample.T), np.ones(n_players)) scores_sorted = -np.sort(-scores) res += scores_sortedres = res/n_repsprint(res)
The output on my computer was
[61.9787 , 60.205613, 59.207738, 58.490962, 57.922872, 57.446557, 57.033137, 56.664796, 56.331276, 56.027048, 55.744607, 55.480267, 55.231936, 54.997983, 54.774691, 54.560586, 54.355605, 54.160058, 53.971987, 53.788433, 53.608599, 53.434231, 53.264367, 53.103545, 52.948098, 52.793427, 52.636299, 52.478476, 52.325864, 52.181329, 52.045519, 51.912301, 51.775257, 51.632466, 51.485957, 51.342442, 51.208008, 51.083966, 50.965164, 50.84481 , 50.715337, 50.577677, 50.436025, 50.29887 , 50.172819, 50.057466, 49.947005, 49.831739, 49.706288, 49.570183, 49.429208, 49.292908, 49.167604, 49.052462, 48.941925, 48.826662, 48.700781, 48.564489, 48.422693, 48.28377 , 48.154248, 48.033372, 47.915259, 47.790658, 47.656015, 47.512366, 47.365977, 47.223311, 47.086521, 46.953544, 46.817191, 46.673013, 46.521177, 46.364323, 46.207313, 46.051975, 45.895711, 45.734553, 45.565879, 45.39038 , 45.210333, 45.027164, 44.839621, 44.644297, 44.43911 , 44.225171, 44.00205 , 43.767837, 43.51958 , 43.256553, 42.974049, 42.66924 , 42.337103, 41.96929 , 41.555295, 41.079778, 40.510671, 39.793988, 38.797513, 37.027683]
Here is a plot:
Image may be NSFW.Clik here to view.
