Вероятность при броске костей - PullRequest
2 голосов
/ 07 ноября 2019
n = 5
k = 3

x = 1
for i in range(1, n + 1):
   x = x * i

y = 1
for i in range(1, k + 1):
   y = y * i

z = 1
for i in range(1, n - k + 1):
   z = z * i

c = x / (y * z)

p = 1
for i in range(k):
   p = p * (1 / 6)

q = 1
for i in range(n - k):
   q = q * (5 / 6)

result = c * p * q

Таким образом, следующий код вычисляет вероятность увидеть ровно 3 шестерки при броске 5 кубиков. Однако я не уверен насчет циклов в этом коде.

Я знаю, что:

n = number of trials
k = number of successes
And p/q success/failure?

Но что делают циклы, и я не уверен насчет переменных x,y, z и c. Традиционно я бы просто использовал полномочия, чтобы получить ответ на эти вопросы, но я не уверен в этом методе.

Спасибо

1 Ответ

2 голосов
/ 07 ноября 2019

Похоже, с - биномиальный коэффициент, используемый в этом расчете вероятности. и циклы используются для вычисления требуемых факториалов (x - это n !, y - это k !, а z - (nk)!).

Петли для p и q действительно используются для вычисления степенейвероятности успеха / неудачи.

Этот код будет намного лучше, если использовать pow и math.factorial

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...