Skip to content

Instantly share code, notes, and snippets.

@arpruss
Created October 21, 2025 16:07
Show Gist options
  • Select an option

  • Save arpruss/eeb4cdee8fc3495a5c0eaea7a297860f to your computer and use it in GitHub Desktop.

Select an option

Save arpruss/eeb4cdee8fc3495a5c0eaea7a297860f to your computer and use it in GitHub Desktop.
sociality2.py
import random
import statistics
N = 2000
runs = 20
def simulate():
sociality = [random.uniform(0,1) for i in range(N)]
matrix = [[0 for i in range(N)] for i in range(N)]
for i in range(N):
for j in range(i,N):
if i==j:
matrix[i][i] = 1
else:
matrix[i][j] = random.uniform(0,1) <= (sociality[i] + sociality[j])/2.
matrix[j][i] = matrix[i][j]
averageSocialityOfOthers = []
for i in range(N):
averageSocialityOfOthers.append(statistics.mean((sociality[j] for j in range(N) if matrix[j][i])))
mostMoreSocialThanMe = []
for i in range(N):
mostMoreSocialThanMe.append(statistics.mean( sociality[j]>sociality[i] for j in range(N) if matrix[i][j] ))
return statistics.mean(mostMoreSocialThanMe)
#return statistics.mean((1 if averageSocialityOfOthers[i] > sociality[i] else 0 for i in range(N)))
#statistics.mean((averageSocialityOfOthers[i]/sociality[i] for i in range(N)))
print(statistics.mean((simulate() for i in range(runs))))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment