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 = 100_000 result_total = [] # create two decks of cards with 52 cards each deck_of_cards1 = list(range(1,53)) deck_of_cards2 = list(range(1,53)) for _ in range(loop): # shuffle both decks random.shuffle(deck_of_cards1) random.shuffle(deck_of_cards2) # compare cards of the same index in both decks result = [] for d1, d2 in zip(deck_of_cards1, deck_of_cards2): if d1 == d2: result.append(1) # if two cards match, add 1 to the result list # append the count of matches to the result total list result_total.append(result.count(1)) # sort the result total list and count the number of occurrences of each value result_total.sort() keys = list(Counter(result_total).keys()) values = list(Counter(result_total).values()) # determine percentage of each value in the result total list values_pct = [] for x in values: values_pct.append(x/loop) # create a bar chart to show the distribution of results plt.bar(keys,values_pct) plt.ylabel("Percentage") plt.xlabel("# of Card Matches") plt.title("Probability") plt.xticks(keys) plt.savefig('matching-cards-two-decks-barchart.png', dpi=300, bbox_inches='tight') plt.show() # print the sorted percentages in descending order values_pct.sort(reverse=True) print(values_pct)