Учитывая n испытаний, с вероятностью p выигрыша каждого испытания, какова вероятность выигрыша r или более испытаний?
Мое мышление выглядит следующим образом:
Каждая комбинация выигрышей и проигрышей имеет вероятность p ^ w * (p-1) ^ (n-w), где w - количество выигрышей.
Каждое количество выигрышей может происходить в комбинациях nCr, напр. выигрыш 2 из 3 раз означает, что вы можете проиграть первый, второй или третий раз, например, три комбинации.
Таким образом, вероятность выигрыша 2 из 3 раз равна 3C2 * p ^ 2 * (1-p) ^ 1.
Вероятность выигрыша 2 или более раз является суммой этого расчета для 2 и 3 побед.
У меня есть следующий код:
import math
def nCr(n,r):
f = math.factorial
return f(n) / f(r) / f(n-r)
def prob_at_least(n, r, p):
probs = [nCr(n,k)*pow(p,k)*pow(1.0-p,n-k) for k in range(r, n+1)]
return sum(probs)
Этот код работает, но есть ли встроенная функция или более короткий путь для достижения того же?