def pattern(self, sequence): trials = len(sequence) c = Coin() sample = [] for _ in range(10_100_000): trial = ''.join([c.flip() for _ in range(trials)]) sample.append(trial)
def p_2_heads(self): c = Coin() successes = [] trials = 100_000 for _ in range(trials): is_success = [c.flip() for _ in range(2)].count('H') == 2 successes.append(is_success) return sum(successes) / trials
def p_pattern(self, pattern): c = Coin() successes = [] trials = 100_000 for _ in range(trials): is_success = ''.join([c.flip() for _ in range(len(pattern))]) == pattern successes.append(is_success) return sum(successes) / trials
def p_pattern(self, patt, cnt =100_000): flip_cnt = len(patt) t_patt = list(patt) #print(t_patt) results = [] c = Coin() for i in range(cnt): flips = [] for i in range(flip_cnt): flips.append(c.flip()) results.append(flips) return (results.count(t_patt) / cnt)
def p_pattern(self, pat): l = len(pat) c = Coin() successes = [] trials = 100_000_0 for _ in range(trials): is_success = ''.join([c.flip() for _ in range(l)]) == pat successes.append(is_success) return sum(successes) / trials # class Experiment: # def p_2_heads(self): # c = Coin() # successes = [] # trials = 100_000 # for _ in range(trials): # is_success = [c.flip() for _ in range(2)].count('H') == 2 # successes.append(is_success) # return sum(successes) / trials
def test_flip(): c = Coin() assert c.flip() in c.states
def test_fair_coin(): c = Coin() outcomes = [] for i in range(100_000): outcomes.append(c.flip())
def p_2_heads(self, cnt =100_000): results = [] c = Coin() for i in range(cnt): results.append((c.flip(),c.flip())) return (results.count(('H','H')) / cnt)