Puzzling Stack Exchange is a question and answer site for those who create, solve, and study puzzles. It's 100% free, no registration required.

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

A real life puzzle, yesterday on The Price is Right a contestant played the following game:

  • She could choose 5 cards from a pile where 2 cards were "Car", 11 were "C", 11 were "A" and 11 were "R".
  • If she chose a "Car" card (at least 1) or the letters "C", "A", and "R" (at least 1 of each), she would win a new car. According to the game, the letters "C", "A", and "R" in the second case did not need to be in order.

What were the odds she was going to win?

share|improve this question
Can you clarify what you mean by 'at least 1 of each' in the brackets? Does it mean that each of them should be chosen at least once or does it mean at least one of each of C, A and R should be chosen.? – manshu Mar 9 at 13:16
In the first case at least 1 "Car" card. In the second case at least 1 "A", at least 1 "C" and at least 1 "R". She wins if the first case or the second case (or both) occur. – Alexis Mar 9 at 13:31
@Alexis did she win? – Insane Mar 9 at 19:59
Actually, only 6 of the cards are "R" – Herb Wolfe Mar 9 at 23:50
@Insane: She lost! – Alexis Mar 10 at 12:21
up vote 14 down vote accepted

If I'm not mistaken

$P(\text{to win car}) = 1 - P(\text{only draw Cs}) - P(\text{only draw As}) - P(\text{only draw Rs}) - P(\text{only draw Cs or As}) - P(\text{only draw Cs or Rs}) - P(\text{only draw Rs or As})$


$P(\text{only draw Cs}) = P(\text{only draw As}) = P(\text{only draw Rs}) = \frac{\binom{11}{5}}{\binom{35}{5}}$


$P(\text{only draw Cs or As}) = P(\text{only draw Cs or Rs}) = P(\text{only draw Rs or As}) = \frac{\binom{22}{5}}{\binom{35}{5}}$


$P(\text{to win car}) = 1 - \frac{3\binom{11}{5}}{\binom{35}{5}} - \frac{3\binom{22}{5}}{\binom{35}{5}} = \frac{244244}{324632} \approx 0.75$

Thinking about it I believe that $P(\text{only draw Cs or As})$ also includes the chances of only Cs and only As. and they get counted twice so I have to actually add them again to make it right. So I believe it might actually be

$P(\text{to win car}) = 1 + \frac{3\binom{11}{5}}{\binom{35}{5}} - \frac{3\binom{22}{5}}{\binom{35}{5}} = \frac{247016}{324632} \approx 0.76091$

Can someone confirm?

share|improve this answer
@Trenin, the thing is that both P(C or A) and P(C or R) both include P(only C). so P(only C) gets counted twice. The same for P(only A) and P(only R). There I believe it's necessary to add it again – Ivo Beckers Mar 9 at 12:29
I agree with your assessment. $P(\text{C or A})$ includes $P(C)$. And so does $P(\text{C or R})$. So you need to remove the duplicate. I was hasty in my first comment. – Trenin Mar 9 at 12:29
Re: your edit. In order to avoid double counting, you simply wouldn't subtract them. By adding them instead of subtracting, you are double-counting in the other direction. – Ian MacDonald Mar 9 at 13:15
@IanMacDonald, by subtracting, (what I did first) I was actually triple counting them, therefore I needed to add it twice to my previous answer fixing any double counting. Because P(C),P(C or A) and P(C or R) all take into account the situation if you would get only C. So to counter the double countring of P(C or A) and P(C or R) I counter it by adding P(C) – Ivo Beckers Mar 9 at 14:02
I think you're making it needlessly complicated: Why watch 'only C' and 'only C/A', when it's far easier to calculate 'no R'? Made an answer of my own based on that theory.. – Tim Couwelier Mar 9 at 14:32

Brute force method using this code:

string[] cards = 
{ "CAR", "CAR", 
  "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", 
  "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", 
  "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R" };

long count=0;
long hits = 0;
for (int i = 0; i < 35; i++)
    for (int j = 0; j < 35; j++)
        if (j == i) { continue; }

        for (int k = 0; k < 35; k++)
            if (k == i || k==j) { continue; }

            for (int l = 0; l < 35; l++)
                if (l == i || l == j || l==k) { continue; }

                for (int m = 0; m < 35; m++)
                    if (m == i || m == j || m == k || m==l) 

                    string temp = cards[i] + cards[j] + cards[k] + cards[l] + cards[m];
                    if (temp.Contains("C") && temp.Contains("A") && temp.Contains("R"))

Console.WriteLine(hits + "/" + count);

Gives the following output:
which comes out to 76.0911% chance of winning

share|improve this answer
You could optimize this a lot by ignoring order... So let each loop start at prior+1 (so j=i+1..., k=j+1...). – Falco Mar 9 at 18:09
Wow that's a lot of nested for loops. How long did this take to run? – Michael McGriff Mar 9 at 18:21
Depending on dedicated computing power I would say over 15 mins. But even with a (less than ideal) computer it would be under 90 mins. – Z. Dailey Mar 9 at 19:10
@MichaelMcGriff a minute and a half. – Kevin Mar 9 at 19:12
@Falco yep, that made it way faster. Down into the sub 1 second range – Kevin Mar 9 at 19:20

I believe there is a :

75,664% chance

Based on the other answers, and the general consensus it's easier to calculate the 'no win' scenario, and deduct them from 1 to find the win odds:

1) Calculate what chances yield 'no CAR and no C'
2) Calculate what chances yield 'no CAR and no A'
3) Calculate what chances yield 'no CAR and no R'

They will (obviously) all equal the same, so here's the math for option 1:

Card 1: 22/35 cards are OK, 11 C's and 2 CAR's aren not

Card 2: 21/34 cards are OK

Card 3: 20/33 cards are OK

Card 4: 19/32 cards are OK

Card 5: 18/31 cards are OK

Which makes the odds of 'no car and no C's' the product of the above five fractions:3.160.080 / 38.955.840 = 8.112%

P(winning the car) = 1 - P(not winning the car) = 1 - P(no car and no C) - P(no car and no A) - P(no car and no R) = 1 - 8.112% - 8.112% - 8.112% = 75,664% odds of winning the car.

share|improve this answer
'no CAR and no C' and 'no CAR and no A' have overlap, namely 'no CAR and no C and no A', you then have to add again 'no CAR and no C and no A' and so on, making it not any less complicated as my answer – Ivo Beckers Mar 9 at 14:40
Why is it when you have a feeling it suddenly seems too simple.. it usually turns out you're wrong? – Tim Couwelier Mar 10 at 15:42

Hmmm... Let's see... We have total $35$ cards and we need to choose only $5$ from it. So there must be $\binom{35}{5}$ (= $324632$) ways to do it.

Now what if I get only one "Car" card...there are $2$ ways to get it (because $\binom{2}{1}$)...and I need to choose any four cards of C, A and R out of those $33$ cards. So the probability when only one "CAR" card is chosen = $\dfrac{\binom{2}{1}\binom{33}{4}}{\binom{35}{5}} = \dfrac{81840}{324632}$

Now what if I get two "Car" cards...there is only $1$ way to get it (because $\binom{2}{2}$)...and I need to choose any $3$ cards of C, A and R out of those $33$ cards. So the probability when two "CAR" cards is chosen = $\dfrac{\binom{2}{2}\binom{33}{3}}{\binom{35}{5}} = \dfrac{5456}{324632}$

Now what if I don't get any "Car" card...then to win I must have C, A and R...all three of them. And if I have all three of them then two of them can be chosen twice. If it happens then one of them must be chosen once. If C is chosen once then the number of ways it can be chosen is $\binom{11}{1}$. So the probability when no CAR card is chosen and two cards are chosen twice is $3\dfrac{\binom{2}{0}\binom{11}{1}\binom{11}{2}\binom{11}{2}}{\binom{35}{5}} = \dfrac{99825}{324632}$. By multiplying by $3$ I covered the probabilities that even A and R can be chosen once. But it is also possible that one of them is chosen thrice and the other two are chosen once. So the probability when no CAR card is chosen and one card is chosen thrice is $3\dfrac{\binom{2}{0}\binom{11}{1}\binom{11}{1}\binom{11}{3}}{\binom{35}{5}} = \dfrac{59895}{324632}$.

These were the four probabilities...by adding them I get $\dfrac{247016}{324632}$...which simplifies to $0.7609$

Thanks to IvoBeckers for help.

share|improve this answer
you calculated the probability to get the Car card AND a C, A and R. The question was to get at least the Car card OR C, A and R – Ivo Beckers Mar 9 at 13:01
@IvoBeckers ahhh..thanks... – manshu Mar 9 at 13:02
@IvoBeckers Just saw something in the question that confused me earlier...the question says that "If she chose a "Car" card (at least 1) or the letters "C", "A", and "R" (at least 1 of each), she would win a new car"...doesn't 'atleast 1 of each' mean that each of them should be present ??... – manshu Mar 9 at 13:11
To my understanding it refers to at least one of each of C, A and R – Ivo Beckers Mar 9 at 13:13
+1 It looks great now :) You have the same answer as me now although you use a different (also correct) approach. – Ivo Beckers Mar 9 at 15:18

Inspired by @Kevin's answer (and not just because we share a name), I decided to see if I could get a good estimate by simply running many trials of the game and recording my wins and losses. This method gives relatively good estimates very quickly. Running a million trials (which only takes my computer a couple of seconds), gets me within a tenth of a percent of the actual answer (76.09% most runs. Not as accurate as Kevin's Brute Force method, but still fun.

Here's the code in case anyone wants to try it out for themselves (written in C#):

private static void Main()
    Console.WriteLine("Enter number of trials");
    int numberOfTrials;
    int.TryParse(Console.ReadLine(), out numberOfTrials);

    Random random = new Random();

    int count = 0;
    int wins = 0;
    for (int i = 0; i < numberOfTrials; i++)
        List<string> cards = new List<string>
        { "CAR", "CAR",
          "C", "C", "C", "C", "C", "C", "C", "C", "C", "C", "C",
          "A", "A", "A", "A", "A", "A", "A", "A", "A", "A", "A",
          "R", "R", "R", "R", "R", "R", "R", "R", "R", "R", "R" };
        if (EvaluateTrial(cards, random)) wins++;

    Console.WriteLine($"{wins} / {count} = {wins / (double)count * 100}%");

private static bool EvaluateTrial(List<string> cards, Random random)
    string hand = "";

    for (int i = 0; i < 5; i++)
        string nextCard = cards[random.Next(0, cards.Count)];
        hand += nextCard;
        if (hand.Contains("C") && hand.Contains("A") && hand.Contains("R")) return true;

    return false;
share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

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