То, что вы делаете, это не подбрасывает монету 100 раз, а 200 раз!
Каждый вызов функции prob()
- это подбрасывание монеты. Теперь каждая итерация цикла for
содержит 2 вызова - сначала с 0,3, затем с 0,7.
то, что вы ищете, может быть примерно таким:
for _ in range(n):
if prob(0.3):
heads +=1
else:
tails +=1
Таким образом, вы делаете ровно 100 бросков (пробных вызовов), и каждый из них является либо головой, либо хвостом.