I was at a pub quiz yesterday and they did a jackpot question which allowed me to play a card game for the chance to win some money, unfortunately I was unsuccessful but I was thinking what are my chances.

The premise is it was using the standard deck of cards, the numbers 2 to 10 were placed facedown in a random order.

The first card would then be flipped, and I'd have to guess higher or lower for the next card, if correct it'd pass to the next card until all cards are revealed.

There are 9 cards but the first is revealed for me and as there are no repeats, the last card is basically told by process of elimination so I would think, is it like 7 coin flips? But the previous cards that I guess will change the probability of my guess right, like if the first card is an 8, it's far more likely that the remaining cards are lower, or if the cards from 2 to 6 have been, it's more likely that next card is higher etc.

How exactly would I work something like this out. What is the likelihood of someone managing to get all the cards right?


1 Answer 1


Say that the exposed card is $7$. There are $3$ higher cards and $5$ lower cards remaining, so you should guess that the next card will be lower. If the next card is $8$ you're out of the game, but if the next card is $3$, you know there is only $1$ lower card and $6$ higher cards remaining, so you should guess higher.

One way to solve the problem, and the only one that occurs to me at present is to write a computer program to test all possible $9!= 362,880$ possible sequences and count how many are winners if you follow this strategy. You may ask, what happens if the the first card is $6$ so that there are $4$ higher and $4$ lower cards left? In this case, it really is a coin toss, and it doesn't matter if you guess higher or lower. For calculation purposes, you an always guess higher (or lower) when it's an even-money chance.


Out of curiosity, I wrote the script described above, and it computed that there are $62,000$ winning sequences, so best play wins just over $17\%$ of the time. Here's the script, in case anyone's interested:

from itertools import permutations

def win(p):
    if len(p)<=2: return True
    high = len([x for x in p[1:] if x>p[0]])
    if 2*high > len(p[1:]):
        return p[1] > p[0] and win(p[1:])
        return p[1] < p[0] and win(p[1:])

winners = 0
for p in permutations(range(2,11)):
    winners += win(p)

The script prints 62000.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .