1
プログラムは意図したとおりに動作します。 1枚だけの違いがあると失敗するようです。たとえば、40枚のカードデッキから6枚のカードを取り出し、5枚のカードを必要とする場合は、値0を返します。Python確率プログラム - x枚のカードからx枚のカードを取り出してデッキ内のxカードから取り出した場合
これは他のケースでも機能します。たとえば、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のダウンロード確率で二項係数関数を使用して
ハードコードされた値で問題を再現できる場合は、値の取得方法を含めないでください。あなたがそれらをどうやって得るかは重要ではありません。 – zondo
zondoが言っていることは、この例は[mcve]ではないということです。試してみるために独自のコードを書く必要があります。少なくともcalcOddsを呼び出す関数を書く必要があります。助けを得るための最善の方法は、MCVEについて読んだり、投稿したりすることです。短くてカット&ペーストで十分であることを知っています。 – GreenAsJade