撲克牌找 Acers
場景:
- 52 張撲克牌中有 4 張 Aces。
- 任拿 5 張撲克牌。
問題:
- 僅僅有 1 張撲克牌中是 Aces 之機率:0.2995。
- 至少有 1 張撲克牌中是 Aces 之機率:0.3412。
GNU R:
HyperGeometricProbabilityOfAcesTaken <- function(
numOfCards, numOfAces, numOfCardsTaken, numOfAcesTaken)
{
numOfOthers <- numOfCards - numOfAces
numOfOthersTaken <- numOfCardsTaken - numOfAcesTaken
myProbability <- choose(numOfAces, numOfAcesTaken) *
choose(numOfOthers, numOfOthersTaken) /
choose(numOfCards, numOfCardsTaken)
myProbability
}
myProbability <- vector(mode = "double", length = 3)
# 任拿 5 張撲克牌,僅有 1 張是 Ace 之機率
numOfCards <- 52
numOfAces <- 4
numOfCardsTaken <- 5
numOfAcesTaken <- 1
myProbability[1] <- HyperGeometricProbabilityOfAcesTaken(numOfCards, numOfAces, numOfCardsTaken, numOfAcesTaken)
print(sprintf("Exact 1 Ace:%.4f", myProbability[1]))
# 任拿 5 張撲克牌,全都不是 Ace 之機率
numOfCards <- 52
numOfOthers <- 48
numOfCardsTaken <- 5
numOfOthersTaken <- 5
myProbability[2] <- HyperGeometricProbabilityOfAcesTaken(numOfCards, numOfOthers, numOfCardsTaken, numOfOthersTaken)
print(sprintf("None is Ace:%.4f", myProbability[2]))
# 任拿 5 張撲克牌,至少有 1 張是 Ace 之機率
print(sprintf("At Least 1 Ace:%.4f", 1 - myProbability[2]))