Mercurial > hg > rlgallery-misc
view py/stats.py @ 55:e421ea2519ec
dgamelaunch: define user/group by name instead of UID/GID.
The user and group might not be created with the UID and GID expected,
so it is better to use names. They can be changed to numeric values
after installation.
author | John "Elwin" Edwards |
---|---|
date | Sun, 11 May 2014 08:32:31 -0700 |
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()