Microsegment.ru
  • Главная страница
  • О проекте
  • Портфолио
  • Блог
Математика на Python

Сложение и умножение вероятностей

Сложение и умножение вероятностей
Математика на Python

Правила

Правило умножения вероятностей:

P(A \cdot B) = P(A) \cdot P(B)

Правило сложения вероятностей:

P(A+B)=P(A)+P(B)-P(A \cdot B)

при условии, что события совместны (т.е. могут произойти одновременно):

P(A \cdot B) \neq 0

иначе:

P(A+B)=P(A)+P(B)

если события попарно несовместны (например, выпадает либо орел, либо решка):

P(A \cdot B) = 0

Решение на Python:

# Вероятность события A
A = .25
# Вероятность события B
B = .5
# Умножение вероятностей
# (одновременно происходит A и B)
AB = .2

# Если событие попарно несовместно 
# (не возможно, чтобы одновременно произошло A и B)
#AB = 0

# Сложение вероятностей
# (произойдет событие A или B)
P = A + B - AB
print(P)
0.55

Примеры на Python

Задача про самолет на Python:

# Задача про самолет

# P  - вероятность попадания
# q  - вероятность промазать
# s  - количество снарядов
# kb - кабина пилота
# dv - двигатель
# pl - планер
P_kb, q_kb, s_kb = .1, 1-.1, 1
P_dv, q_dv, s_dv = .3, 1-.3, 2
P_pl, q_pl, s_pl = .6, 1-.6, 3

P_popadania = P_kb + P_dv + P_pl
print("Вероятность попадания в самолет =", P_popadania)

P_up = 1 - q_kb**3
print("Вероятность уничтожения пилота  =", P_up)

P_cel = 3*P_dv*P_pl**2
print("Вероятность самолета уцелеть    =", P_cel)
Вероятность попадания в самолет = 1.0
Вероятность уничтожения пилота  = 0.2709999999999999
Вероятность самолета уцелеть    = 0.32399999999999995

Задача про бензобаки на Python:

import math
from fractions import Fraction # Дроби

# Задача про бензобаки

# Вероятность попадания в бензобак
P = .1
# Количество выстрелов
n = 3
# Бензобаки
#    A, B, C, D
b = [0, 0, 0, 0]

# Вероятность попадания в каждый бензобак
b[0] = b[1] = b[2] = b[3] = P/len(b)
print(b[0], "\t\t\t=", Fraction(b[0]).limit_denominator(1000))

# Вероятность попадания 3 пуль в 1 бензобак
b[0] = b[1] = b[2] = b[3] = P/len(b)**n
print(b[0], "\t\t=", Fraction(b[0]).limit_denominator(1000))

# Вероятность попадания 2 пуль в любой из бензобаков
b[0] = b[1] = b[2] = b[3] = len(b)*(1 - P/len(b))*(P/len(b))**(n-1)
print(b[0], "\t=", Fraction(b[0]).limit_denominator(1000))

# Вероятность попадания 3 пулями в разные бензобаки
b[0] = b[1] = b[2] = P/len(b)
b[3] = 0
Pb = b[0]*b[1]*b[2]*math.factorial(n) # b[0]**3*math.factorial(n)
print(Pb, "\t=", Fraction(Pb).limit_denominator(10000))
0.025 			= 1/40
0.0015625 		= 1/640
0.0024375000000000004 	= 2/821
9.375000000000003e-05 	= 1/10000

Задача про цистерны с бензином на Python:

# Задача про цистерны с бензином

# Вероятность возгорания цистерны
# при попадании пули
P = .1
# Количество снайперских выстрелов
n = 3
# Количество станций (количество атак)
# с 3 цистернами
ns = 7

# Все выстрелы в центральную цистерну
P1 = 1 - (1-P)**n
q1 = 1 - P1
print(P1, "\t- Все выстрелы в центральную цистерну")

# По 1 пуле в каждую цистерну
P3 = P**n
print(P3, "\t- По 1 пуле в каждую цистерну")

# 2 пули в 1 цистерну, 1 в другую цистерну
P21 = P**(n-1)*(1 - P)
print(P21, "\t- 2 пули в 1 цистерну, 1 в другую цистерну")

# 3 пули в центральную цистерну
P2 = (1 - P)*P*(1 - P)
print(P2,"\t- 3 пули в центральную цистерну\n")

# Вероятность успеха одновременных 
# атак на 7 станций, 
# на каждой 3 цистерны
P7 = (1 - P1)**ns
print(P7, "\t- Вероятность успеха одновременных атак на 7 станций")

# Сколько будет успешных атак
PY = P1*ns
print(PY, "\t- Количество успешных атак")

# Мера разброса результата атак
# (средне квадратичное отклонение)
sigma = (ns*P1*q1)**.5
print(sigma, "\t- Мера разброса результата атак (средне квадратичное отклонение)\n")

Pmax = PY + sigma
Pmin = PY - sigma
print("Разброс успешных атак от", Pmin, "до", Pmax)
0.2709999999999999 	- Все выстрелы в центральную цистерну
0.0010000000000000002 	- По 1 пуле в каждую цистерну
0.009000000000000003 	- 2 пули в 1 цистерну, 1 в другую цистерну
0.08100000000000002 	- 3 пули в центральную цистерну

0.10941898913151246 	- Вероятность успеха одновременных атак на 7 станций
1.8969999999999994 	- Количество успешных атак
1.1759732139806585 	- Мера разброса результата атак (средне квадратичное отклонение)

Разброс успешных атак от 0.7210267860193409 до 3.072973213980658

Python анализ Математика Теория вероятностей

Предыдущая статьяГипергеометрическое распределение случайной величиныСледующая статья Случайные величины

Рубрики

Метки

abc abcd excel Python sql VBA xyz Комбинаторика Математика Теория вероятностей анализ виртуальный помощник данные знания информационная система информация корпоративная информационная система маркетинг мудрость о проекте оптимизация практика программное обеспечение пэст ролевая модель теория юмор языки программирования

Политика конфиденциальности

Продолжая использовать данный сайт вы подтверждаете свое согласие с условиями его политики конфиденциальности. Подробнее…




Администрация и владельцы данного информационного ресурса не несут ответственности за возможные последствия, связанные с использованием информации, размещенной на нем.


Все права защищены. При копировании материалов сайта обязательно указывать ссылку на © Microsegment.ru (2020-2025)