view py/stats.py @ 67:5b6211e2e36f

Update some static pages. The front page has been reorganized. Links and information on the downloads page are now current.
author John "Elwin" Edwards
date Sat, 21 Nov 2015 20:01:41 -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()