Python Coding Challenge: Two People with the Same Birthday

See Python: Tips and Tricks for similar articles.

Python Coding Challenge: You’re in New York City. You walk up to a stranger and ask them what their birthday is. If their birthday is the same as yours, you win. If not, you take their hand and the two of you walk up to another stranger and ask them their birthday. If their birthday is the same as either of yours, you win. If not, one of you takes their hand, and you walk up to another stranger… Keep going until you find someone who has the same birthday as someone else in your group. Use Python to figure out how many tries it will take you.

Give it a try and then check out the possible solution below the image: Holding Hands

One Possible Solution

import random

attempts = []
for i in range(10000):
    bd = random.randint(1, 366)
    bds = [bd]
    while True:
        bd = random.randint(1, 366)
        if bd not in bds:
            bds.append(bd)
        else:
            break
    attempts.append(len(bds))

sum(attempts) / len(attempts), max(attempts)

For me, this output: 23.7019, 77

So, on average, it should take 23 to 24 tries to find someone. Now, go give it a try for real and see if that’s right.