所以这个程序大部分时间都是按预期工作的。当只有一张卡的差价时,它似乎失败了。例如,从一副40张牌中抽出6张牌,需要5张特定的牌,则返回值“0”
在其他情况下也有效。例如,从一副40张牌中抽出5张牌,想要3张特定的牌,则返回1/988的答案
所有的卡片都是独一无二的,相互独立。在
from math import factorial
from fractions import Fraction
deckNo = int(input("Enter the number of cards in the deck: "))
cardsDrawn = int(input("Number of cards drawn : "))
cardNo = int(input("Enter the number of cards you want to draw: "))
cardDifference = cardsDrawn - cardNo
newDeckNo = deckNo - cardNo
finalOdds = (factorial(cardsDrawn) * factorial(newDeckNo)) / (factorial(cardDifference) * factorial(deckNo))
finalOdds = Fraction(finalOdds).limit_denominator(10000)
print(finalOdds)
这是我用来计算概率的方法的错误吗?如果是,我应该用什么来代替它?在
编辑:抱歉,这样可以吗?在
使用符号和scipy中的二项式系数函数,计算概率如下:
请注意,我计算的上述表达式的简化版本并不适合我,因为我假设python无法管理阶乘,并且使用binom函数做得更好。在
相关问题 更多 >
编程相关推荐