Python Puzzles
You process a deck with 50 cards that has an unknown and random number of red and black cards. What is the probability of drawing a red card from the deck?
The probability is 50%.
import random
import numpy as np
# initialize an empty deck list and a counter for red cards
deck = []
red = 0
size = 1_000_000
# generate a random number of red cards (0-51) for each iteration
# calculate the percentage of red cards and append a binomial distribution (0=black, 1=red) to the deck
for _ in range(size):
number_red_cards = random.randrange(0,51)
pct_red = 0 if number_red_cards == 0 else number_red_cards/50
deck.append(np.random.binomial(size=1, n=1, p=pct_red))
# count the number of red cards in the deck
for x in deck:
if x == 1:
red += 1
# print the probability of drawing a red card
print('The probability is ' + '{0:.2%}'.format(red/size))
