Помогите построить распределение вероятностей для случайной величины python

Задача
Есть 6 независящих друг от друга экзамена, не сдать каждый по отдельности шанс 15%, необходимо на выходе получить список значений вероятности не сдать 0 из 6 экзаменов(то есть сдать все), 1 из 6 экзаменов, 2 из 6, и далее по аналогии до 6 из 6 экзаменов

Ссылка на stackoverflow вопроса:
https://ru.stackoverflow.com/questions/1581345/%d0%9f%d0%be%d1Ѓ%d1‚%d1Ђ%d0%be%d0%b8%d1‚%d1%8c-%d1Ђ%d0%b0%d1Ѓ%d0%bf%d1Ђ%d0%b5%d0%b4%d0%b5%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2%d0%b5%d1Ђ%d0%be%d1%8f%d1‚%d0%bd%d0%be%d1Ѓ%d1‚%d0%b5%d0%b9-%d0%b4%d0%bb%d1%8f-%d1Ѓ%d0%bb%d1ѓ%d1‡%d0%b0%d0%b9%d0%bd%d0%be%d0%b9-%d0%b2%d0%b5%d0%bb%d0%b8%d1‡%d0%b8%d0%bd%d1%8b-python

Прошу помочь и объяснить

Автор поста оценил этот комментарий

import math

for k in range (7):

print(float(math.factorial(6)*(0.15**k)*((0.85)**(6-k)))/(math.factorial(6-k)*math.factorial(k)))


print("конец цикла")

раскрыть ветку (1)
Автор поста оценил этот комментарий
Спасибо, осталось разобраться
показать ответы
Автор поста оценил этот комментарий

У вас в решении не совсем правильно.


Во первых, просто failure_rate ** k недостаточно. Ведь если ученик ученик провалил два экзамена, это не просто 0.15**2, он ведь должн еще и оставшиеся 4 сдать успешно. То есть должно быть 0.15**2 * 0.85**4.


То есть должно быть (failure_rate ** k) * ((1 - failure_rate) ** (6 - k))


Кроме того, вы не учитываете, что, если если было провалено несколько экзаменов, они могут быть провалены в любом порядке. Например, если провалено два экзамена, это может быть первый и третий, а может быть пятый и шестой.


Поэтому (failure_rate ** k) * (1 - failure_rate ** (6 - k)) нужно еще домножить на количество перестановок. Если провален один эзамен, то это может быть любой из шести, количество перестановок = 6. Если два, то первый проваленный экзмен может быть любым из шести, а второй - любой из оставшихся пяти. Общее число перестановок 6*5/2. На 2 нужно делить потому, что каждая пара получается двумя разными способами, например первый+третий это то же самое, что третий+первый.


Число перестановок для k провленных экзаменов считается по формуле:


6! / (6 - k)! / k!


То есть для нуля проваленных экзаменов: 6! / 6! / 0! = 1 (одна перестановка)

Для одного проавленного экзамена: 6! / 5! / 1! = 6 (шесть перестановок)

Для двух проваленных экзаменов: 6! / 4! / 2! = 15 (15 перестановок)

...

Для шести проваленных экзаменов: 6! / 0! / 6! = 1 (одна перестановка)


Я не знаю, как факториал задается в Пайтоне, так что дополните формулу сами.


В конце можно еще удостовериться, что сумма всех семи вероятностей равна единице. Ну или почти равна, с учетом погрешности вычислений.

раскрыть ветку (1)
Автор поста оценил этот комментарий
Огромное спасибо, бесконечный респект и уважуха
1
Автор поста оценил этот комментарий

А зачем программить задачку без хоть чего-то динамического? Закинь в эксель и растяни...

раскрыть ветку (1)
Автор поста оценил этот комментарий
Потому что задача изначально в питоне и должна быть там выполнена
показать ответы