Задача по теории вероятности (биномиальное и геометрическое распределение)
Стрельбу по цели ведут до получения двух попаданий. Найти математическое ожидание числа произведенных выстрелов, если вероятность попадания в цель при одном выстреле равна 0,2.
Я склоняюсь к тому, что ответом является:
M(X*Y) = M(X)*M(Y)
M(X*Y) = ((1-0.2)/0.2)^2 = 14,
но все равно есть сомнения: а может, M(X+Y) - правильно. Подскажите, пожалуйста.
Ответы (3 шт):
Давайте прикинем - какова вероятность того, что надо стрелять n раз, чтоб попасть 2 раза? Это серия из n-1 выстрелов с промахами и одним попаданием, и последний выстрел - попадание. Вероятность получения конкретной серии из n-1 выстрела с единственным попаданием - 0.8^(n-2)*0.2, и вариантов размещения первого попадания среди n-1 выстрела - (n-1), так что имеем вероятность того, что надо стрелять n раз, чтоб попасть 2 раза -
.
Для поиска матожидания надо умножить вероятность на n и просуммировать по всем n от 0 до бесконечности (реально - от 2 до бесконечности, но это ничего не меняет: первые члены нулевые):
Или, так как p = 0.2, искомое матожидание равно 10.
Всё.
P.S. Ну мы же все программисты, нет? :) Проводим вычислительный эксперимент, в чем проблема...
#include <iostream>
#include <iomanip>
#include <random>
using namespace std;
mt19937 gen(random_device{}());
uniform_real_distribution<> dis(0.0, 1.0);
int howmuch()
{
int count = 0;
for(int ok = 0; ok < 2; count++)
if (dis(gen) < 0.2) ok++;
return count;
}
int main()
{
int total = 0, ok = 0;
for(; total < 1000000;)
{
ok += howmuch();
total++;
}
cout << double(ok)/total << "\r";
}
Результат смотрим тут.
Большое спасибо всем, кто отвечал! Я таки написал преподавателю свой вопрос. Он подтвердил, что считать нужно, как я думал (вроде). Отдельная благодарность Harry. Он дал довольно подробный ответ с примером кода. И, думаю, его ответ справедлив для множества случаев.
Если здравого смысла недостаточно, можно и формул накидать
X - число неудачных попыток до первого попадания
Y - число произведённых выстрелов до первого попадания = 1 + X
Z - число произведённых выстрелов до второго попадания
Пусть q = 1-p
P(X=0) = p
P(X=1) = pq
P(X=m) = pq^m
Ряд: p, pq, pqq, ..., p*q^m
Производящая функция:
f(z) = p*sum((p*z)^m), m=[0, Inf)
f(z) = p/(1-qz)
f'(z) = pq/(1-qz)^2
M(X) = f'(1) = pq/(1-q)^2 = pq/p^2 = q/p
M(Y) = 1 + M(X) = (p+q)/p = (p+(1-p))/p = 1/p
M(X) = q/p = 4
M(Y) = 1/p = 5
M(Z=Y1+Y2) = M(Y1+Y2) = 2*M(Y) = 10



