Program çoğu zaman amaçlandığı gibi çalışır. Sadece 1 kart fark olduğunda başarısız gibi görünüyor. Örneğin, 40 kart destesinden 6 kartın çizilmesi ve 5 özel kartın istenmesi, bu "0" değerini döndürür.Python Olasılık Programı - Güvertede x kartlarından alınan x kartlarından x kart çekme olasılığı
Diğer durumlarda çalışır. Örneğin, 3 özel kart isteyerek, 40'lık bir desteden 5 kart çekmek, 1/988
cevabını döndürür. Tüm kartlar birbirinden benzersiz ve bireyseldir.
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)
Bu, olasılık için kullanıyorum yöntemiyle ilgili bir hata mı? Eğer öyleyse ne ile değiştirmeliyim?
DÜZENLEME: Bunun için üzgünüz, sorun değil mi? senin notalarını ve hesaplamak için scipy olasılık binom katsayısı işlevinin kullanılması
Sorunu kodlanmış değerler ile yeniden üretebilirseniz, lütfen değerleri nasıl aldığınızı eklemeyin. Onları nasıl aldığınızın önemi yok ... eğer onları nasıl aldığınızın önemi yoksa. – zondo
Ne zondo söylemeye çalışıyor, bu örneğin bir [mcve] değil. Denemek için kendi kodumuzu yazmamız gerekiyor - en azından calcOdds'ı çağırmak için bir işlev yazmamız gerekiyor. Yardım almanın en iyi yolu, MCVE hakkında okumak ve bir mesaj göndermek: eğer doğru yaptıysanız, kısa ve kesik ve yapıştırmanın sorunu göstermesi için yeterli olduğundan emin olursunuz. – GreenAsJade