|
Опубликую топик и пойду спать наверно.
Вообще интересно мне стало какая вероятность получить снежинку, пуляя снежками в мишень. Вообще говоря, за 23 очка или 25 очков дают может 2 снежинки, я не знаю, у меня цель найти вероятность хотя бы одной снежинки.
Всего у нас 5 бросков, нужно выбить более 15 очков, за каждый бросок можно получить 1-5 очков.
Значит всего вариантов считая однотипные ( 44144 и 44441 однотипны) 55 =3125.
Я сначала попытался вручную все посчитать, но потом понял, что это очень долго.
И решил просто написать программку. Которая посчитала, вариантов в которых ты набираешь более 15 очков, это 1372( но не стоит радоваться раньше времени, не забываем, что 5-ка выпадает "раз в год" )
Вообщем если стражи не возражают, вот беглый код на паскале, не было цели написать оптимальную программу.
program Mishen;
var q,w,e,r,t:byte; p1,p2,p3,p4,p5:real; sum:integer;ver:real; sumver:real;
Procedure Mike (x:integer) ;
begin if x>3 then
if x=4 then ver:=ver*p4 else ver:=ver*p5
else if x=3 then ver:=ver*p3 else if x=2 then ver:=ver*p2 else
ver:=ver*p1;
end;
begin
sum:=0; ver:=1;sumver:=0; readln(p1,p2,p3,p4,p5);
for q:=1 to 5 do
for w:=1 to 5 do
for e:=1 to 5 do
for r:=1 to 5 do
for t:=1 to 5 do
if (q+w+e+r+t)>15 then
begin sum:=sum+1; Mike(q); Mike(w);Mike(e);Mike(r);Mike(t);
sumver:=sumver+ver; ver:=1;
end;
writeln(sum,' ',sumver);
end.
Для тех, кто не силен, она считает вероятность выбить снежинку при фиксированных вероятностях выпадения очков (1-5). К примеру скажем что вероятность выпадения 1-ки 0.25, 2-ки 0.25 , 3-ки 0.25, 4-ки 0.22, 5-ки 0.03. Тогда получаем, что снежинку мы получаем с примерной вероятностью 1.41%. Я не знаю вероятностей выпадения очков, это очень печально, так можно было бы найти математическое ожидание кол-ва бросков, для нужного кол-ва снежинок, и оценить, а успеешь ли ты набрать эти недостающие 7-20 снежинок за оставшееся время.
Спасибо за чтение.
P.S Надеюсь я правильно на ночь глядя считал.
о!
|