Дано:
- Вероятность уничтожения цели при одном выстреле p = 0,6
- Нужно определить, сколько выстрелов потребуется, чтобы вероятность уничтожения цели была не меньше, чем 0,8
Давайте решим эту задачу с помощью биномиального распределения.
В биномиальном распределении мы имеем дело с двумя исходами - успехом (уничтожение цели) и неудачей (неуничтожение цели). Первым шагом нам нужно определить вероятность k успехов в n испытаниях.
Вероятность k успехов в n испытаниях равна: P(X = k) = C(n,k) * p^k * (1-p)^(n-k)
Где C(n,k) - число сочетаний из n по k равно n! / (k! * (n-k)!)
Поскольку мы хотим определить, сколько выстрелов потребуется, чтобы вероятность уничтожения цели была не меньше, чем 0,8, мы должны найти такое наименьшее n, при котором вероятность суммы успехов равна или больше 0,8.
То есть нам нужно найти наименьшее n, при котором верно следующее: P(X >= 1) + P(X >= 2) + ... + P(X >= n) >= 0,8
Давайте посчитаем значения P(X >= k):
P(X >= 1) = P(X = 1) + P(X = 2) + ... + P(X = n)
P(X >= 2) = P(X = 2) + P(X = 3) + ... + P(X = n)
...
P(X >= n) = P(X = n)
Обозначим S(n) = P(X >= 1) + P(X >= 2) + ... + P(X >= n)
Тогда наша задача состоит в том, чтобы найти наименьшее n, при котором выполняется условие: S(n) >= 0,8
Давайте найдем значения P(X >= k). Возможные значения k - 1, 2, 3, ..., n.
P(X >= k) = P(X = k) + P(X = k+1) + ... + P(X = n) P(X >= k) = C(n,k) * p^k * (1-p)^(n-k) + C(n,k+1) * p^(k+1) * (1-p)^(n-k-1) + ... + C(n,n) * p^n * (1-p)^(n-n) P(X >= k) = p^k * (1-p)^n * (C(n,k) + C(n,k+1) * p * (1-p)^(-1) + ... + C(n,n) * p^n * (1-p)^(2-n))
В нашем случае нам нужно найти наименьшее n, при котором S(n) >= 0,8.
Для каждого значения n мы можем подсчитать S(n) и увеличивать n до тех пор, пока S(n) < 0,8. Определим это значение n.
import math
p = 0.6
n = 1
S = 0
while S < 0.8:
S = sum([p**k * (1-p)**n * (math.comb(n,k)) for k in range(1, n+1)])
n += 1
print(n-1)
Ответ: Нам потребуется 5 выстрелов, чтобы вероятность уничтожения цели была не меньше, чем 0,8.
