Python Puzzles
If you shuffle two separate decks of cards, what is the probability of the same card appearing in the exact same position in the two separate decks?
Approximately 36% of the time the two decks will have zero matching cards in the same position; 64% of the time it will have at least one matching card. When I run the simulation 1 million times, the most matches I get is 9.
import random from collections import Counter import matplotlib.pyplot as plt loop = 1_000_000 result_total = [] # create a deck of cards deck_of_cards1 = list(range(1,53)) deck_of_cards2 = list(range(1,53)) for _ in range(loop): random.shuffle(deck_of_cards1) random.shuffle(deck_of_cards2) result = [] for d1, d2 in zip(deck_of_cards1, deck_of_cards2): if d1 == d2: result.append(1) result_total.append(result.count(1)) result_total.sort() keys = list(Counter(result_total).keys()) values = list(Counter(result_total).values()) values_pct = [] # determine percent for x in values: values_pct.append(x/loop) #create a bar chart plt.bar(keys,values_pct) plt.ylabel("Percentage") plt.xlabel("# of Card Matches") plt.title("Probability") plt.xticks(keys) plt.show() values_pct.sort(reverse=True) print(values_pct)