Numbrix

Fill the grid with 1 … n so that consecutive numbers share an edge. Strip the labels and the answer is a Hamiltonian path of the grid — the numbers only record the order you walked it in. Click a cell and type; digits accumulate, so 1 then 2 gives you 12.

7 your number 8 printed by the setter — fixed the walk, drawn as you connect it the chessboard, and it is a clue

One number colours the whole board

Colour the grid like a chessboard. The walk changes colour at every step, so the colour of the cell holding v is the colour of the cell holding 1, flipped v−1 times: value parity and cell colour are locked together, globally. Print a single number anywhere and every other number on the board learns which half of the grid it lives in. Here is the same board's search space, measured as surviving cell×number pairs:

Across random answers the first clue is worth more than half the board, and the ones after it are worth far less — the chessboard is bought once:

boardnumbers printedpairs left after pinpairs left after linkcells pinned
8×80100.0%100.0%0.0%
8×8196.9%43.0%1.6%
8×8293.9%36.9%3.3%
8×8488.0%27.7%6.8%
8×8876.8%13.5%17.5%
10×10198.0%44.4%1.0%
10×10884.7%19.5%9.8%

Bookkeeping alone (pin) removes one printed number from 63 cells and stops. The chain rule turns the same clue into a global statement. On 1,400 sampled answers the parity law held every time, and so did its corollary: an odd cell count puts both ends of the walk on the same colour, an even one puts them on opposite colours.

The rung that pays nothing

The obvious second rule for a puzzle about consecutive numbers is a ruler. Walking from u to v takes exactly |v−u| steps and no walk beats the grid distance, so a cell far from every home of u loses a whole interval of numbers around u. It is sound, it is cheap, and it is how people actually solve these. It is also provably worthless once the chain rule has run: arc consistency on a path-shaped constraint network is exact, so every number it leaves standing takes part in some complete walk — and that walk is itself the witness for the distance bound. Anything you can prove with a ruler, the chain has already proved.

boardboards measuredbits the ruler deletes after linkbits it deletes after pin alonecells pinned by pin+rulercells pinned by pin+link
4×44002,85155.8%57.3%
6×640020,90463.3%64.9%
8×840075,41756.4%57.8%
10×10400196,21959.4%61.2%

Not a weak rule — a redundant one. On its own it does almost exactly the work the chain does. The code for it is still in the repository, unused by the ladder, purely so the measurement can be re-run.

What is left is distinctness

The relaxation the chain solves exactly is a walk: it may step on its own tail. Everything the real puzzle knows beyond that is about the walk being a path, and there are two ways to say it. block counts numbers: the values a…b need b−a+1 distinct cells, so if the union of their surviving homes is smaller the board is dead, and if it is exactly that size those cells belong to the block and lose everything else (with the same argument read from the cells, which pins the reverse direction). edge forgets numbers entirely and counts degrees on the drawing: every cell has path-degree 2 except the two ends, so a cell with exactly two possible edges must use both, forced edges glue into runs whose labels are consecutive by construction, a run may never close a cycle, and what survives must keep the board connected.

boardnumbers printedpinlinkblockedgeprobe
8×820%20.9%43.3%47.5%53.5%74.7%
8×830%30.7%71.9%74.5%84.6%88.8%
8×840%40.6%86.6%87.4%94.1%96.9%
10×1020%21.0%47.0%50.7%61.5%77.8%
10×1030%31.5%78.8%80.2%88.6%93.4%
10×1040%41.4%90.6%91.3%97.3%97.9%

Cells pinned by each rung, on random reveals.

One load-bearing rung, three accelerators

The table above adds rungs from the bottom. Deleting one from the top tells a different story, and the two together are the honest picture: with the probe in place, only link is irreplaceable. Everything else is speed.

10×10, variantcells pinnedboards whose fixpoint movedpin scanslink scansedge runsprobes
full84.9%496,439471,7964,4841,763
−pin84.9%0 of 120556,5745,2501,763
−link37.3%12 of 1226,300026372
−block84.9%1 of 12714,182687,8406,7262,015
−edge84.9%1 of 12703,965660,46902,520
−probe74.3%9 of 1211,30011,3001130

Dropping the degree count leaves the same cells pinned on 11 of 12 boards — and raises the bookkeeping bill by 42% and the probe count by 43%, because the probe has to re-derive by contradiction what the drawing said for free.

Ink, spent well and spent badly

A Numbrix clue set is small — but only if the setter chooses it. The left column is the irredundant set an adversary finds by revealing until the level finishes and then taking every number back that it can do without. The right column is what the same board needs when the numbers are revealed in random order until the answer becomes unique. The gap widens with the board:

boardchosen by an adversary, edge levelas % of cellsrevealed at random until unique (median)ratio
4×4318.8%31%1.7×
6×6616.7%22%1.3×
8×81015.6%30%1.9×
10×101515.0%49%3.3×

Medians. The adversarial share falls as the board grows — 15% of a 10×10 is enough — while random ink needs half the board. Give the probe the same job and 10×10 drops to 12 numbers.

At the bottom of the ladder there is a wall rather than a curve. With only the bijection to reason from, a cell becomes pinned exactly when it is printed or when it is the last unclaimed one — so pin cannot finish any board that is not already printed in full. Measured, it wanted 15 of 16 numbers on a 4×4 and 35 of 36 on a 6×6, every time. That is why the bank has no pin grade: there is no such puzzle.

Reading a second answer off the answer

A Numbrix answer is a walk, so the cheapest way to build a different answer out of one you already have is the classic 2-opt reversal: pick two positions on the path whose cells happen to be neighbours in the grid, and walk the stretch between them backwards. It needs one extra edge at each end of the window and no printed number inside it. Scanning every pair of positions is O(n²) with O(1) work each — a second answer read directly off the first, with no search at all.

boardambiguous boardsexplained by one reversalfalse alarms on unique boards
4×46083.3%0 of 35
6×66070.0%0 of 24
8×86063.3%0 of 3
10×106058.3%

The false-alarm column runs thin on the big boards because the stream was deliberately under-clued to produce ambiguity — so the shipped bank does the same job at full strength: all 64 boards have a unique answer and none of them carries a certificate. The share the reversal explains falls with board size, which is the honest reading: on a big grid a second answer can be a re-route the walk never comes back from.

The move below a reversal does not exist at all. A single cell can never change its number quietly — the number would appear twice and another would vanish — and the tests check that exhaustively over every cell and every alternative number on 4×4.

Sampling an answer without ever searching for one

A rectangle always has a Hamiltonian path — the boustrophedon one, snaking row by row — so a Numbrix answer can never fail to exist. But that answer is far too regular to print, and rejection-sampling random walks until one covers the board is hopeless past 5×5.

So the generator moves between answers instead of drawing one. The backbite move takes a Hamiltonian path, picks one of its two ends, picks a random grid neighbour u of that end, and — if u is not already the next cell along — adds the edge (end, u) and deletes the edge that used to enter u from the far side. The result is another Hamiltonian path of the same grid. Always. No rejection, no restart, no failure mode.

boardmoves per cellmoves acceptedturns in the answerdistinct answers in 200 draws
10×100 (the snake)18.01
10×10169.8%33.1200
10×10471.7%50.9200
10×101671.8%55.9200
10×1060 (shipped)72.0%55.4200

The snake has 2(n−1) = 18 turns and exactly one form. Sixteen moves per cell triples the turn count and the sampler has stopped moving — 200 draws, 200 different answers, about seven in ten moves accepted at every board size.

The census

The raw engine shares no candidate machinery with the ladder: it walks, and scores completed walks against the rule text. Switch the printed numbers off and it becomes a census machine, which is where the cross-check gets teeth — these numbers are published combinatorics, not something this repository can quietly agree with itself about.

boarddirected Hamiltonian paths, enginepublished
3×34040 — OEIS A096969
4×4552552
5×58,6488,648
6×6458,696458,696
boardHamiltonian cycles, enginepublished / proved
4×466 — OEIS A003763
6×61,0721,072
3×3, 5×500 — a theorem: a cycle alternates colours, an odd cell count cannot

And one identity proved rather than looked up. On the 2×m ladder a walk can only leave a column through its own rung, so it sweeps the columns monotonically from each end and is fixed by its turning column — giving m² − m + 2 undirected Hamiltonian paths. The engine, which knows nothing about ladders, produced 4, 8, 14, 22, 32, 44, 58 for m = 2…8. Exactly.

On the puzzle side the two engines agreed on every solution count they both finished, probe-completion and true uniqueness agreed on 160 boards in both directions with zero disagreements, and every one of the 64 shipped boards was re-proved unique by both engines before shipping.