In a trick taking game (like Whist or Spades) each player gets 13 cards out of a deck of 52 cards. Assume you lead the first round with the A$\clubsuit$ which is not a trump. The only option to loss this trick is if someone does not have $\clubsuit$s at all.

Given that your hand contains $n$ $\clubsuit$s:

  1. What is the probability that all 3 opponents have at least 1$\clubsuit$
  2. What is the probability that all 3 opponents have at least 2$\clubsuit$
  3. What is the probability that all 3 opponents have at least 3$\clubsuit$

2 Answers 2


On the one hand, trying to compute this exactly leads to some pretty messy combinatorics. On the other hand, there aren't that many different parameters to the problem. So this seems like a good candidate for simulation. Generating a million random hands for each possible suit length, I get the following probabilities (with an error on the order of $\pm 10^{-3}$):

$$\begin{array}{c|cccc} \text{number of tricks} & 1 & 2 & 3 & 4\\ \hline \text{1 ♣ in hand}&0.99264 & 0.91541& 0.604551& 0.093518\\ \text{2 ♣ in hand}&0.986273& 0.862786& 0.450455& 0.0\\ \text{3 ♣ in hand}&0.974938& 0.784958& 0.275911& 0.0\\ \text{4 ♣ in hand}&0.955386& 0.671941& 0.110204& 0.0\\ \text{5 ♣ in hand}&0.923557& 0.523525& 0.0& 0.0\\ \text{6 ♣ in hand}&0.871776& 0.339119& 0.0& 0.0\\ \text{7 ♣ in hand}&0.789388& 0.145011& 0.0& 0.0\\ \text{8 ♣ in hand}&0.665197& 0.0& 0.0& 0.0\\ \text{9 ♣ in hand}&0.480148& 0.0& 0.0& 0.0\\ \text{10 ♣ in hand}&0.24016& 0.0& 0.0& 0.0\\ \end{array}$$ If you hold more than $10$ clubs, someone has to be void by the pigeonhole principle. You said you had the ace, so I didn't consider the distributions where you are yourself void. Probably if you hold the singleton ace you don't care all that much about the probability that there are four tricks in clubs before anyone else is void, but you might occasionally care, so I threw it in.

The Python code that generated this is:

import random

iterations = 10 ** 6

def num_tricks_prob(suit_length):
    cards_remaining = 13 - suit_length
    not_void_count = [0, 0, 0, 0] 
        # not_void_count[i] is number of times opponents are all nonvoid after i tricks;
        # you hold the ace, so we know they're all void after 4 tricks
    iter_count = 0
    card_positions = range(0, 39)
        # "slots" in all unknown hands
    def hand(seat, cards): # seat in { 0, 1, 2 }; cards is an array of positions
        def in_hand(card):
            return 13 * seat <= card and card < 13 * (seat + 1)
        return filter(in_hand, cards)

    while iter_count < iterations:
        card_locations = random.sample(card_positions, cards_remaining)
        hands = map(lambda seat: hand(seat, card_locations), range(0, 3))
        min_length = min(len(hand) for hand in hands)

        for i in range(0, 4):
            if i + 1 <= min_length:
                not_void_count[i] += 1

        iter_count += 1
    return [float(ct) / iterations for ct in not_void_count]

for n in range(1, 14):
    print num_tricks_prob(n)

Here is a partial answer to get you started: Let’s say we want the probability that at least everyone has a club. Instead let’s work out the probability that there is someone (not you) who has no clubs at all. There are $13-n$ clubs of $39$ cards distributed amongst the other players (note you have the ace so $n\ge1$) so for one player, bob let’s say, to not have a club we imagine him drawing 13 cards from the cards not in your hand and get

$$\Bbb P(\text{Bob has no club}) = \frac{26+n}{39}\cdot\frac{25+n}{38}\cdots\frac{13+n}{26} = \frac{\binom{26+n}{13}}{\binom{39}{13}}$$

The last expression counts the number of ways to choose 13 cards from the $26+n$ non-clubs in the numerator and counts the ways to choose 13 cards from the 39 cards available in the denominator. Now by symmetry the probability for each individual other player not having a club is the same (but not independent: if you only have the ace then they can’t all have no clubs). Let’s now write down the probability that someone has no clubs:

$$\Bbb P(\text{someone has no clubs}) = \frac{\binom{26+n}{13}}{\binom{39}{13}} + \sum_{j=1}^{13-n}\frac{\binom{13-n}{j}\binom{26+n}{13-j}}{\binom{39}{13}}\left(\frac{\binom{13+n+j}{13}}{\binom{26}{13}}+\frac{\binom{26-n-j}{n+j}}{\binom{26}{13}}\right)$$

This corresponds to:

  1. Bob has no clubs. Or:
  2. Bob has $j$ clubs and:
    1. Alice has no clubs, or
    2. Alice has all the remaining clubs $13-n-j$ of them so the third player has none.

Finally you have $\Bbb P(\text{everyone has at least one club}) = 1 - \Bbb P(\text{someone has no clubs}).$ To deal with the other cases you can follow a similar pattern.

  • $\begingroup$ I thought about this solution but it gives wired results. E.g. if you have 10 $\clubsuit$ then $P(Bob has no clubs) = 0.284$ and $P(someone has no clubs) = 0.85$ $\endgroup$
    – Cohensius
    Mar 18, 2018 at 15:23
  • $\begingroup$ Actually thinking about it the multiply by 3 step is wrong. I’ll try to fix it $\endgroup$ Mar 18, 2018 at 15:24
  • $\begingroup$ The Binomial coefficient is upside down $\endgroup$
    – Cohensius
    Mar 18, 2018 at 15:29
  • $\begingroup$ Yeah that was just me being stupid. I’ve corrected it now I think $\endgroup$ Mar 18, 2018 at 15:41

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.