понедельник, 31 августа 2009 г.

Теория вероятности на практике

Небольшой пример кода на питоне с численным вычислением математематического ожидания числа различных исходов в серии из k бросаний монетки. Радует возможность реализации сути алгоритма через внутреннюю организацию питоновского хэша.

#!/usr/bin/env python
import random

class Coin(object):
def __hash__(self):
self.__dict__.setdefault("hashvalue", random.randint(0, 1))
return self.hashvalue

def __eq__(self, o):
return True


def Experiment(seriesLength):
expCount = 1000
p = 0
for eindex in xrange(expCount):
p += len(set(Coin() for _ in xrange(seriesLength)))
return 1.0 * p / expCount

if __name__ == "__main__":
for c in xrange(15):
print "%s:\t%.5f" % (c, Experiment(c))

Комментариев нет:

Отправить комментарий