Enable Javascript in your browser and then refresh this page, for a much enhanced experience.
Implemented formula from mathworld.wolfram.com/Dice.html solution in Clear category for Probably Dice by kkkkk
from math import factorial
def nCr(n, r):
return factorial(n) // factorial(r) // factorial(n-r)
def probability(dice_number, sides, target):
"""Find probability of getting a target num from given number of dice."""
# Formula from http://mathworld.wolfram.com/Dice.html
p = target
s = sides
n = dice_number
k_max = abs((p - n) // s)
if n <= k_max or target < dice_number:
return 0.0
seq = 0
for k in range(k_max + 1):
seq += (-1)**k * nCr(n, k) * nCr(p - (s * k) - 1, p - (s * k) - n)
probability = seq / (s ** n)
return round(probability, 4)
Jan. 13, 2020