All about flooble | fun stuff | Get a free chatterbox | Free JavaScript | Avatars    
perplexus dot info

Home > Probability
The First Lady (Posted on 2024-01-30) Difficulty: 2 of 5
A standard deck of 52 cards contains, inter alia, four Queens.
After a perfect shuffle, one turns cards from the top one after another, until the first Queen appears.

Please provide your justified estimate at what step will the 1st Queen appear.

No Solution Yet Submitted by Ady TZIDON    
Rating: 5.0000 (2 votes)

Comments: ( Back to comment list | You must be logged in to post comments.)
Some Thoughts 2 methods, 2 different answers | Comment 7 of 12 |
I did both a spreadsheet and a program.

My program came up with 10.6.
My spreadsheet came up with 9, but I'm not confident it is correct.

Spreadsheet method.
For each point in the deal, the probability that no Queen has arrived yet is:
(48/52)*(47/51)*(46/50)* ... for however many cards in a row
(48/52)*(47/51)* ... *(41/45) = 0.5014 for the first 8 cards.
(48/52)*(47/51)* ... *(40/44) = 0.4559 for the first 9 cards
Fifty percent is much closer to 8 cards of no Queens, so my impulse is to say the next card is a Queen making the answer:  the 9th card.  But simply assuming the next card is a Queens does not seem rigorous, so I'm not confident this is correct.

In my computer simulation, instead of shuffling cards, I picked randomly from the deck. I just made a list of the first 52 integers, in order, and designated a subset of 4 of those integers as "Queens".  Then I picked random integers from the 'deck', removing each card from the deck after it was selected, keeping track of n when the n-th card was one of the integers designated as a Queen.
This method came to the 10.6-th card as the first Queen.

So my answer is 10.6

------------
import random
reps = 100000
firsts = []
queens = [12,25,38,51]

for rep in range(reps):
    shuffle = [n for n in range(1,53)]
    for deal in range(1,53):
        card = random.choice(shuffle)
        shuffle.remove(card)
        if card in queens:
            firsts.append(deal)
            break

print(sum(firsts) / len(firsts))

  Posted by Larry on 2024-01-30 10:31:17
Please log in:
Login:
Password:
Remember me:
Sign up! | Forgot password


Search:
Search body:
Forums (0)
Newest Problems
Random Problem
FAQ | About This Site
Site Statistics
New Comments (0)
Unsolved Problems
Top Rated Problems
This month's top
Most Commented On

Chatterbox:
Copyright © 2002 - 2024 by Animus Pactum Consulting. All rights reserved. Privacy Information