view py/stats.py @ 87:1bddd1839831

Update the dgamelaunch patch to work with the most recent changes. Also set the umask, just in case it defaults to 0077.
author John "Elwin" Edwards
date Sat, 24 Nov 2018 16:47:24 -0500
parents c045d4dcf88a
children
line wrap: on
line source

#!/usr/bin/python3

import math
import psycopg2
import rlgall

def makeExpPDF(lbd):
  def lpdf(x):
    return lbd * math.exp(-lbd * x)
  return lpdf

def makeExpCDF(lbd):
  def lcdf(x):
    return 1 - math.exp(-lbd * x)
  return lcdf

conn = psycopg2.connect("dbname=rlg")
cur = conn.cursor()
for game in rlgall.gamelist:
  query = "SELECT score FROM {0};".format(game.uname)
  cur.execute(query)
  scores = [ r[0] for r in cur.fetchall() ]
  count = len(scores)
  total = sum(scores)
  lbd = float(count) / total
  cdf = makeExpCDF(lbd)
  print("{0}: {1} games, average {2}".format(game.name, count, int(1/lbd)))
  for i in range(0, 10000, 1000):
    actual = len([ s for s in scores if i <= s < i + 1000 ])
    predicted = (cdf(i + 1000) - cdf(i)) * count
    print("{0:5}: {1:4} {2:.3}".format(i, actual, predicted))
  high = max(scores)
  print("Max: {0} {1:.3}\n".format(high, 1 - cdf(high)))

cur.close()
conn.close()
exit()