Mercurial > hg > rlgallery-misc
view py/stats.py @ 1:def7fecbd437
Switch to SQL timestamps.
Use SQL timestamps whenever possible, and don't store UNIX timestamps
in the database at all.
author | John "Elwin" Edwards <elwin@sdf.org> |
---|---|
date | Wed, 25 Jul 2012 23:05:12 -0700 |
parents | 5ba2123d2c20 |
children | 25843238434a |
line wrap: on
line source
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()