Put this project under version control, finally.

Scripts for rlgallery.org, using a PostgreSQL backend.  The recorder
system is in py/, CGI scripts are in web/.
This commit is contained in:
John "Elwin" Edwards 2012-07-25 21:59:42 -07:00
commit ddf0ec25b0
6 changed files with 937 additions and 0 deletions

35
py/stats.py Normal file
View file

@ -0,0 +1,35 @@
import math
import psycopg2
import rlgalldb as 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}".format(i, actual, predicted)
high = max(scores)
print "Max: {0} {1}\n".format(high, 1 - cdf(high))
cur.close()
conn.close()
exit()