peyo написа:aleksiq написа:Задача 1:Хвърлят се три зарчета. Каква е вероятността едно и също число да се появи точно на две от тях.
Резултата от 3 зарчета можем да представим като куб с размери 6х6х6 или пък 6 квадрата всеки с размер 6х6.
6*6*6 = 216
Да разгледаме всеки от 6-те квадрата. Квадратчетата по главния диагонал са тези които ни интересуват, като 1,1 или 2,2 и т.н. Но едно от тях не ни върши работа, защото ще е например 1,1,1, а ние искаме само 2 еднакви. Затова във всеки от 6-те квадрата само 5 позиции от главния диагонал са печеливши. Така имаме 6*5 = 30 печеливши игри. Вероятността е 30/216 = 0.1388888888888889
Да решим задачата по друг начин като умножаваме вероятности:
Хвърляме 1-вото зарче. Вероятността дотук е 1.
Хвърляме 2-рото зарче. Да са еднакви с първото вероятността е 1/6, значи 1*(1/6). Да са различно е 5/6, значи е 1*(5/6) и така имаме 2 пътеки по които можек да тръгнем.
Пътека 1:
1*(1/6) и хвърляме 3-тото зарче. Вероятността за 3-тото зарче да е еднакво с първите две е (1/6), става 1*(1/6)*(1/6) = 0.027777777777777776 и това е НЕ-печеливша игра
1*(1/6) и хвърляме 3-тото зарче. Вероятността за 3-то зарче да е различно от първите две е (5/6), става 1*(1/6)*(5/6) = 0.1388888888888889 и това е печеливша игра
Пътека 2:
1*(5/6) и хвърляме 3-тото зарче. Вероятността за 3-тото зарче да е еднакво с първото или второто е (2/6), става 1*(5/6)*(2/6) = 0.2777777777777778 и това е печеливша игра
1*(5/6) и хвърляме 3-тото зарче. Вероятността за 3-то зарче да е различно от първите две е (4/6), става 1*(5/6)*(4/6) = 0.5555555555555556 и това е НЕ-печеливша игра
Да направим проверка дали всичко се сумира до 1:
0.027777777777777776 +0.1388888888888889 +0.2777777777777778 +0.5555555555555556 = 1.0
И сега 0.1388888888888889 +0.2777777777777778 = 0.4166666666666667
Което не е отговора който получихме от предишния метод (0.1388888888888889) , значи поне един от тези методи е грешен.
Как да разберем кой е грешния метод? Ще вземем 3 зарчета, ще изиграем няколко милиона игри и ще видим:
- Код: Избери целия код
from random import randint
n, N = 0, 1000000
for _ in range(N):
unique_values = set([randint(1,6),randint(1,6),randint(1,6)])
if len(unique_values)==2:
n+=1
print(n/N)
0.416248Ок, вероятностно-умножителния метод се оказа верния.