Skip to content
Vamshi Jandhyala

Books · The Fiddler: Solutions

Chapter 3

Can You Win at Asymmetric Bingo?

↓ Download PDF handout

You play bingo on a 5×55 \times 5 board while your opponent plays on an 8×88 \times 8 board. Their board carries the numbers 11 through 6464 in a random arrangement. Yours carries 2525 numbers chosen at random without replacement from the same range, also arranged at random. There are no free squares.

Numbers are drawn one at a time from 11 to 6464, without replacement. If the drawn number is on your board you mark it; otherwise your opponent, who is certain to have it somewhere, marks it on theirs. The game ends when somebody has five markers in a row, going across, down, or diagonally.

Who is more likely to win, you or your opponent?

The Fiddler, Zach Wissner-Gross, September 4, 2026(original post). Set by Austin Shapiro and his seven-year-old.

The official solution appeared in the post of September 11, 2026. It also finds the 5×55 \times 5 player more likely to win, by the same count of about seven surviving windows against twelve lines. The Extra Credit half of that post is paywalled, so 0.670.67 is my own and has not been checked against it.

Solution

The setup looks lopsided in your opponent’s favour, on two counts. They hold every number, so they mark about 3939 of the 6464 draws to your 2525. And they have far more places to make five in a row: 9696 against your 1212.

Both counts mislead, and the second is where the puzzle lives.

Your opponent holds all 6464 numbers, but 2525 of them are on your board, and those you take first. The squares carrying them are dead: your opponent will never mark them, not once, however the draws fall. Their board is therefore not an 8×88 \times 8 of usable squares. It is an 8×88 \times 8 with 2525 holes punched through it at random, and five in a row is a brittle thing to ask of a board full of holes.

So count the windows properly. On the 8×88 \times 8 there are 8×4=328 \times 4 = 32 horizontal runs of five, another 3232 vertical, and 3232 diagonal, since each diagonal direction offers a 4×44 \times 4 grid of starting squares. That is 9696. A given window survives only if all five of its squares are live, and the dead squares are a random 2525-subset of the 6464, so Pr(a given window survives)  =  (395)(645)=  5757577624512  =  0.0755\begin{gather*} \Pr(\text{a given window survives}) \;=\; \frac{\binom{39}{5}}{\binom{64}{5}} \\ =\; \frac{575757}{7624512} \;=\; 0.0755\ldots \end{gather*} Linearity of expectation then gives the count that matters: 96×(395)(645)  =  7.25.96 \times \frac{\binom{39}{5}}{\binom{64}{5}} \;=\; 7.25 .

Ninety-six windows collapse to about seven. Your twelve lines are never holed at all, since every square of your board is one you will eventually mark. The true comparison is not 9696 against 1212. It is about 77 against 1212, and you are ahead.

Why the extra draws do not help

That leaves the other apparent advantage, that your opponent marks more squares. It is worth almost nothing, and the reason is worth spelling out.

Fix any five numbers. Whoever needs them, that line is completed at the moment the last of the five is drawn, and those five draw positions are five distinct places in a uniformly random ordering of 6464. That law does not care whose board the numbers sit on. A window needing five numbers is finished at the same moment, in distribution, whether it is yours or theirs.

So marking more squares does not make your opponent faster at anything. It means only that their markers are scattered over more squares, most of which do no work for any surviving window. Both players are waiting for the same kind of event, the arrival of the last of a particular five, and the only thing that differs is how many such fives each of you is waiting on. That is the whole asymmetry, and it runs opposite to the board sizes.  You, on the 5×5, are more likely to win. \boxed{\ \text{You, on the } 5 \times 5, \text{ are more likely to win.} \ }

The computation

Two structural claims carry the argument above, and both were checked rather than asserted.

The first is the count of surviving windows. Simulating boards directly gives 7.26277.2627 against the exact 96(395)/(645)=7.249396\binom{39}{5}/\binom{64}{5} = 7.2493. The spread is wide, standard deviation 3.253.25 about that mean, and in about one game in 240240 no window survives at all, so your opponent cannot win however the draws fall.

The second is the race itself. The numbers are only labels, so the draw order can be fixed as 1,2,,641, 2, \dots, 64 and only the two boards randomised. Each side finishes when the last number of one of its viable lines arrives.

import numpy as np

mine = np.argsort(rng.random((M, 64)), axis=1)[:, :25]   # my cells -> numbers
opp  = np.argsort(rng.random((M, 64)), axis=1)           # their cells -> numbers

my_time = np.full(M, BIG, np.int16)                      # first of my 12 lines
for ln in L5:
    np.minimum(my_time, mine[:, ln].max(axis=1), out=my_time)

on_mine = np.zeros((M, 64), bool)
np.put_along_axis(on_mine, mine, True, axis=1)
live = ~np.take_along_axis(on_mine, opp, axis=1)         # their markable squares

opp_time = np.full(M, BIG, np.int16)                     # first surviving window
for ln in L8:
    ok = live[:, ln].all(axis=1)
    np.minimum(opp_time, np.where(ok, opp[:, ln].max(axis=1), BIG), out=opp_time)

wins = (my_time < opp_time).sum()

You win a clear majority, which settles the question asked. Left unopposed you would finish on the 3838th draw at the median and your opponent on the 4343rd, while the game itself ends on the 3535th on average, because whichever race is going to be won is usually won long before either board fills.

The same game was also simulated the slow and obvious way, drawing one number at a time and testing every line after every draw, with no vectorisation to hide a mistake in. Twenty thousand such games agree with the fast version to well within their own noise.

One wrong version is worth recording, because of how it announced itself. An early draft built my board from the first twenty-five numbers drawn rather than from an independent random subset, which handed me all my numbers in the opening twenty-five draws and had me winning every single game, at a median finishing draw of five. A board needing five distinct numbers cannot be completed on the fifth draw, and that impossibility is what exposed the bug.

Extra Credit

To at least the nearest hundredth, what is the probability that you will win a given game of asymmetric bingo?

Solution

There is no clean closed form to reach for here, and it is worth being clear about why rather than simply reporting a number.

Each side’s finishing time is a minimum over its viable lines of the last arrival among five numbers, which would be manageable if those lines were independent. They are not, on either side. Your twelve lines share squares with one another, every cell of the 5×55 \times 5 lying on two of them or three. The surviving windows on the 8×88 \times 8 overlap far more heavily still, since consecutive windows along a row share four of their five squares. Worse, which windows survive is itself random and correlated with everything else, because it depends on the same 2525 numbers that make up your board and hence your own lines. The joint law does not factorise anywhere, so the value comes from playing the game out.

Thirty-five million games give  Pr(you win)  =  0.6657    0.67. \boxed{\ \Pr(\text{you win}) \;=\; 0.6657 \;\approx\; 0.67 . \ }

Rounding, and why it needs saying

The question asks for the nearest hundredth, and this answer lands close enough to a boundary that the third decimal decides the second. That deserves an error bar rather than a flat assertion.

Two runs from independent seeds gave 0.665568±0.000149over ten million games,0.665568 \pm 0.000149 \quad\text{over ten million games}, 0.665684±0.000094over twenty-five million,0.665684 \pm 0.000094 \quad\text{over twenty-five million}, which pool to 0.665651±0.0000800.665651 \pm 0.000080, about eight standard errors clear of 0.6650.665. So the hundredth really is 0.670.67, but only just, and a short run could easily land the wrong side of the line and report 0.660.66 in good faith.

The computation

The same simulation as above, counting wins rather than merely comparing medians, and run long enough that the standard error is small against the distance to the rounding boundary. Pooling the two independent seeds is what takes the answer from suggestive to settled: ten million games alone put it under four standard errors from 0.6650.665, which is not enough to name a hundredth with confidence.