KAlgebra/Ймовірності
На цій сторінці наведено декілька прикладів використання KAlgebra для розв’язування задач теорії ймовірностей.
Вступ
Нехай ми ведемо гру 5 гральними кістками.
Теорія, яка лежить в основі гри
Спочатку проаналізуємо ситуацію з киданням однієї кістки:
Ймовірність отримати під час викидання будь-яке з чисел на кістці дорівнює 1/6 або 16,667%, оскільки ми маємо рівно 6 можливих результатів викидання і кожен з них є рівноймовірним з іншими.
Нижче наведено таблицю, де праворуч від числа на кістці записано ймовірність його випадання.
1 16,667% 2 16,667% 3 16,667% 4 16,667% 5 16,667% 6 16,667%
Якщо ми кидатимемо 2 кістки, розподіл ймовірностей, звичайно ж, зміниться:
2 2,778% 3 5,556% 4 8,333% 5 11,111% 6 13,889% 7 16,667% 8 13,889% 9 11,111% 10 8,333% 11 5,556% 12 2,778%
Чому ж, на відміну від випадку з однією кісткою, маємо різні значення ймовірностей для кожного з чисел? Відповідь дуже проста. Розглянемо результат «4» і всі комбінації з двох натуральних чисел, які у сумі дають 4:
1+3 = 4 3+1 = 4 2+2 = 4
Таким чином, нам слід додати ймовірності кожної з цих комбінацій, щоб отримати загальну ймовірність випадання суми 4. Ось результат:
P(1,3) + P(3,1) + P(2,2) = 1/6 * 1/6 + 1/6 * 1/6 + 1/6 * 1/6 = 0,08333 = 8,333%
Отже, якщо у нас буде 5 кісток, нам доведеться додавати ймовірності для всіх варіантів чисел на 5 кістках, які у сумі дають потрібне нам число. Спосіб отримання ймовірностей сум для більшої кількості кісток є аналогічним.
Задача зі знаходження ймовірності
Розгляньмо задачу зі знаходження ймовірності випадання з п’яти кісток трьох з шістками.
Знайти цю ймовірність можна таким чином: ймовірність випадання шістки на одній кістці * ймовірність випадання шістки на ще одній кістці * ймовірність випадання шістки на ще одній кістці * ймовірність випадання не шістки на одній кістці * ймовірність випадання не шістки на ще одній кістці
Потрібна нам комбінація може бути такою: 6 6 6 2 3, або такою: 5 6 6 6 1. Отже нам слід врахувати те, що нас задовольнятиме будь-який порядок випадання кісток, аби лише серед них було рівно три шістки. Тому слід ввести до розрахунків біноміальні коефіцієнти. Обчислити біноміальний коефіцієнт з N по M у KAlgebra можна таким чином:
factorial(N) / (factorial(M) * factorial(N-M))
Це комбінаторне число, яке визначається такою формулою:
comb:=(N,M)->factorial(N) / (factorial(M) * factorial(N-M))
Отже, біноміальний коефіцієнт для 3 чисел у 5 позиціях буде таким:
comb(5,3)
= 10
Отже наша функція набуде такого остаточного вигляду:
(comb(5, 3)*(1/6)*(1/6)*(1/6)*(5/6)*(5/6))
= 0.0321502
Тепер ми можемо визначити просту функцію для отримання результату:
binomial:=(b, p, k)->(comb(b, k)*p^k)*(1-p)^(b-k)
Отже тепер маємо:
binomial(5, 1/6,3)
= 0.0321502
Це ймовірність отримати з п’яти елементарних подій (випадання певного числа на кістці) 3 сприятливих, якщо ймовірність сприятливого результату у елементарній події дорівнює 1/6, а ймовірність несприятливого — 5/6.
Ви можете зауважити, що сума ймовірностей дорівнює 1:
sum(binomial(5,1/6,t):t=0..5)
= 1
У розподілі ймовірностей за значеннями величини ймовірностей спочатку зростають до максимального значення, а потім спадають. Форма розподілу нагадує форму дзвону. Такий розподіл ймовірностей називається біноміальним розподілом.
Отже, тепер зрозуміло, що розподіл між можливими сумами на кістках не є рівномірним, тому вибір комбінацій з більшою ймовірністю випадання може вести до виграшу у грі з вгадування суми.
Єдиним варіантом, коли всі результати є рівноймовірними, є варіант з однією кісткою, оскільки ймовірність випадання будь-якого числа у цьому випадку дорівнює 1/6. Ще одним прикладом такого рівномірного розподілу ймовірностей є підкидання монетки, коли ймовірність випадання будь-якої з її сторін дорівнює 1/2.
Простим способом досягнення виграшу є збільшення ймовірності випадання потрібної грані. Наприклад, казино може додати невеличку вагу навпроти грані з шісткою, щоб ймовірності змінилися, скажімо так:
0.15 1 0.15 2 0.15 3 0.15 4 0.15 5 0.25 6
Тепер, якщо ми викинемо 5 кісток, а нам потрібно буде три шістки, загальна ймовірність зміниться так:
binomial(5,0.25,3)
= 0.087890625
Реалістичний приклад
Нехай маємо казино, яке грає проти гравця. Припустімо, що маємо також 5 кісток і початкову ставку у 1$. Тепер створимо правила гри таким чином:
немає шісток або одна шістка: гравець програє 1$
дві або 3 шістки: гравець виграє 1$
чотири шістки: гравець виграє 175$
п’ять шісток: гравець виграє 375$
Кількість шісток | Виграш або програш |
---|---|
0 | -1$ |
1 | -1$ |
2 | 1$ |
3 | 1$ |
4 | 175$ |
5 | 375$ |
Виконаємо розрахунок ймовірностей:
Виграш гравця:
Гравець виграє лише якщо випаде від двох до п’яти шісток. Отже, якщо рахувати ймовірність виграшу за допомогою KAlgebra, матимемо:
binomial(5,1/6,2)+binomial(5,1/6,3)+binomial(5,1/6,4)+binomial(5,1/6,5)
= 0.196244855967
Виграш казино:
Казино виграє, якщо шістка не випаде або випаде один раз. Якщо рахувати виграш казино за допомогою KAlgebra, матимемо:
binomial(5,1/6,0)+binomial(5,1/6,1)
= 0.803755144033
Тепер визначимо, чи є шанси на виграш збалансованими. Створимо функцію win(x), яка обчислюватиме відповідність між сумами ставок і ймовірностями виграшу:
win:=x->piecewise { x=0 ? -1, x=1 ? -1, x=2 ? 1, x=3 ? 1, x=4 ? 175, x=5 ? 375, ? 0 }
Давайте перевіримо наші обчислення за допомогою KAlgebra:
sum(win(x)*binomial(5,1/6,x): x=0..5)
= -2.01227923213e-16
Результатом мав бути 0, але через похибки у внутрішньому представленні чисел у ком’ютері ми отримали лише близьке до нуля число.
Як бачимо, у цьому випадку маємо гру з нульовою сумою: ні гравець, ні казино нічого не виграють, якщо гра продовжуватиметься нескінченно довго.