#!/usr/bin/env python
# -*- coding: utf-8 -*-
import random
# Размер наибольшего интервала одинаковых булевых значений в случайной выборке
def max_HT(N):
s, max_s, r = 1, 1, random.choice([0,1])
for x in range(1, N):
if( r == random.choice([0,1]) ):
s+= 1
else:
s, max_s, r = 1, max( max_s, s), 1-r
return max( max_s, s)
# серия из K экспериментов на последовательности длины N
def test_HT(N, K):
s = [ 0 for x in range(N+1)]
for k in range(K):
s[max_HT(N)] += 1
return s
N = 100
K = 10000
s = test_HT(N, K)
p = 0
for x in range(1, min(30, N+1)):
p += s[x]
print x,"\t", s[x],"\t", p,"\t", (p*1.0)/(K*1.0),"\t", 1.0 - (p*1.0)/(K*1.0)