A stratum · combinatorics on one-sided boards
Leapers on a Möbius Strip
A knight that gallops off the right edge of a half-twisted board doesn't reappear where the doughnut would send it — it returns on the left, upside down. Count the ways such pieces can stand without attacking, and you fall off the edge of the encyclopedia: eight sequences OEIS has never held — and one symmetry the twist quietly destroys.
This is the sequel to Leapers on a Torus. There we wrapped the board into a doughnut — both pairs of edges glued straight — and counted non-attacking knights, camels, zebras and giraffes, one per row and column. Here we glue the left and right edges with a half-twist instead. The board becomes a Möbius band: one continuous side, one continuous edge, and a piece crossing the seam comes back with its rows reflected. Glue the other pair too, with a flip, and you get a Klein bottle. On these one-sided boards the counts are still real, still exactly computable — and, as far as we could find on 2026‑07‑13, catalogued nowhere.
The reason a leaper is the right piece for this is subtle and it is the whole point. On a Möbius band a queen's diagonal has no honest answer — it spirals around the twist forever and where it "attacks" depends on a convention you had to invent. A leaper makes a single fixed jump, so its landing square is fixed by the standard rule for any surface: unfold to the flat cover, read the jump there, fold the target back through the gluing. It does not matter which way round the L the knight goes. That is why the clean twisted chess piece was always a bounded one.
See the twist
Pick a surface and a piece, then hover or tap a square to light up everywhere that piece attacks from there. Watch what happens near a glued edge: on the Möbius band and Klein bottle some targets come back through the seam wrapped, and some come back flipped — landing on the far side, mirrored. Then click squares to drop pieces, one per row and column, and try to seat all 6 without an attack.
Hover a square to see where the leaper reaches.
The flipped squares are the signature of a one-sided board. On the doughnut a knight leaving the right edge re-enters at the same height on the left; on the Möbius band it re-enters at the mirrored height — row i carries over to row n−1−i, exactly the carry-over Bell & Stevens used to put queens on this board in 2008. That single reflection is enough to change every count below.
Eight sequences off the edge of the map
Counting the non-attacking placements — one leaper per row and per column — for each board and each piece gives the table below. The flat and torus rows are known: the flat knight is OEIS A137774 ("non-attacking empresses", a rook that also leaps like a knight — the rook part is the one-per-row-and-column rule), and the torus row is the previous stratum. The Möbius and Klein rows are the new ones: each returned No results on oeis.org, checked 2026‑07‑13.
Terms n = 1..14, one leaper per row and column. Live-enumerated in your browser up to n = 9; press the button below and watch it happen. Beyond that the terms are computed offline by four independent enumerators — see how far each check actually reaches below, which is not the same distance for all of them.
The law the twist breaks
On the torus there is a hidden law. Multiply both coordinates of a leaper's move by any number coprime to the board size and the count cannot change — a proved bijection of the modular board onto itself. Because a prime board like n = 7 makes every leaper equivalent under that scaling, all four pieces are forced onto the same count there: 210. The doughnut cannot tell a knight from a giraffe at n = 7.
The scaling law needs both axes to wrap the same way. The Möbius band wraps only one axis (and with a flip); the Klein bottle wraps the two axes differently. So the symmetry has nothing to stand on — and the four leapers, welded together on the torus, split apart. Move the dial to a prime board and watch 210 shatter.
The count you can guess
Every number on this page took a machine hours of exhaustive search. Here is a question the table makes askable: did it have to? Suppose you refuse to enumerate anything and only count the constraints. How close do you get?
Under the one-per-row-and-column rule, only one kind of pair of squares can ever both be occupied: two squares in different rows and different columns. Call the number of such pairs that attack each other P. A random seating puts a piece on both squares of a given pair with probability 1/(n(n−1)), so a random permutation carries E = P/(n(n−1)) attacks on average, and if the attacks got in each other's way no more than chance would predict, the count would be about n! e−E. That is an old heuristic and not a theorem, and its limit is somebody else's result: A137774 carries, in its own formula lines, "Asymptotics: a(n)/n! → 1/e⁴" and the general statement for a leaper [r,s] that the ratio tends to 1/e² when r = s and 1/e⁴ when r < s, crediting V. Kotěšovec, Non-attacking chess pieces 6ed (2013), pp. 636, 637 and 685. Those are exactly the limits of e−E below, since a leaper with r < s has eight distinct vectors and E → 4. None of that is ours, and a number falling out of your own model is not evidence that you found it. What follows is the finite-n version, on surfaces the catalogue does not cover.
What the four surfaces add is that P comes out in closed form on every one of them, and the forms line up by topology rather than by anything to do with chess:
| surface | attacking pairs P | free boundaries |
|---|---|---|
| torus | 4n² | 0 |
| Klein | 4n² − k | 0 |
| Möbius | 4n² − 2(a+b)n − k' | 1 |
| flat | 4(n−a)(n−b) | 2 |
The term of order n runs 0, 0, −2(a+b)n, −4(a+b)n as the number of free boundaries runs 0, 0, 1, 2. Every difference in constraint count between these four surfaces is a boundary effect, and the half-twist itself moves only a constant (k and k' are small integers, 2 to 16, depending on piece and on whether n is odd). That is the whole reason the Möbius counts sit far above the torus counts while the Klein counts sit almost on top of them: the Möbius band is the only one of the four that is open in a direction, so it is the only one that loses a term of order n.
the leading terms are a two-line count, not a fit — here it is
A leaper (a,b) has eight move vectors, (±a,±b) and (±b,±a): four with a row-step of ±a and four with a row-step of ±b. Fix one vector v = (dr,dc) and ask how many squares can make that jump without the far end falling off. It depends on nothing but which axes wrap:
| surface | rows | columns | jumps that land |
|---|---|---|---|
| flat | bounded | bounded | (n−|dr|)(n−|dc|) |
| torus | wrap | wrap | n² |
| Klein | wrap, flipped | wrap | n² |
| Möbius | free edge | wrap, flipped | (n−|dr|) n |
Add over the eight vectors and halve, because every pair of squares is reached from both of its ends:
flat [4(n−a)(n−b) + 4(n−b)(n−a)] / 2 = 4(n−a)(n−b)
Möbius [4(n−a)n + 4(n−b)n] / 2 = 4n² − 2(a+b)n
torus 8n² / 2 = 4n² Klein the same
What is left over is O(1): the folded pairs that land in the same row or the same column, which the one-per-row-and-column rule already forbids and which therefore constrain nothing. That leftover is where the half-twist and the parity of n appear, and it is why the Klein bottle is a few pairs short of the torus rather than equal to it. The instrument above recounts P from the fold model on every load, so if this paragraph were wrong the page would disagree with itself in public.
Now write the truth as the heuristic times whatever it missed, a(n) = n! e−E · R(n). The residual R is not 1 and is in no hurry to become 1. But it moves slowly, and that is enough to predict with: take R at one board size and carry it forward one step, unchanged. No fitting, no free parameters, nothing to tune.
The rule was scored before it was used here, and not on our own numbers. The four flat rows are published, and they reach far past anything this project has enumerated: A137774 and A189358 and A189565 to n = 24, A189563 to n = 23, and the knight to n = 30 through Martin Fuller's b-file. Carrying R forward one step across that range scores the rule against 45 integers the Artificial Wasteland did not compute. Set the surface to flat above and drag past 15 to walk them one at a time; the scoreboard is below.
A median error of a third of a per cent is worth nothing on its own, because a procedure that cannot fail is not evidence. So the same rule, not adjusted in any way, was pointed one square over: at the n-queens counts, A000170, published to n = 27, which use this very same one-per-row-and-column convention. It is wrong by about 32 per cent, at every board size from 15 to 27, and it never recovers.
That failure is the useful part, because it is not noise and it names its own precondition. A queen is a slider, so its attacking pairs number 2(2C(n,3)+C(n,2)) ≈ ⅔n³ and the expected attacks per random seating, E, grow without bound. A leaper's P is 4n² + O(n), so its E settles on 4 and stays there. The residual can only stop moving once E does: for the queens it keeps shrinking by a near-constant factor of 0.764 a step, and 1/0.764 − 1 is 31 per cent, which is precisely the amount the rule is wrong by. So this is a rule for fixed-jump pieces, it has no business on a slider, and the fact that it could have said so about the leapers is the whole reason to believe it when it does not.
And then the part that could only be done once. On 2026‑08‑20, while the exhaustive n = 15 search for the Möbius and Klein rows was running and had returned nothing, the same rule was pointed at the eight numbers it was about to produce, and the twelve predictions were written into research/nonorientable-leapers/PREDICTED-N15.md and committed. Nothing anywhere had ever computed those eight. The commit that holds the guesses comes before the commit that holds the answers, which is the only reason the guesses are worth anything.
Where this model is guaranteed to be blind, and it was said so in advance. On the torus at n = 14 the zebra and the giraffe have equal counts and identical P. The model has no mechanism whatever to tell them apart, so it must predict the same number for both at n = 15 — while the scaling law in the instrument above predicts that this is exactly the board size where they come apart for good. Both are in this repository, one predicting a split and one unable to see it. That is not a contradiction. It is the difference between a symmetry argument and a counting argument, and the honest thing is to keep both and say which one sees what.
How you know it isn't lying
A new integer sequence is only worth anything if the machine that made it was proven right on numbers it did not get to choose. The attack model here — the fold-through-the-gluing rule — is pinned to independent published grounds before a single new term is believed. Each one below states how far it actually reaches, because on 2026‑08‑17 an audit of this page found that the reach had been quietly overstated — see certificate 4.
1 — the flat board reproduces four OEIS entries, including the new column
With no edges glued, the counts are catalogued: the knight is A137774, and the camel, zebra and giraffe are Kimberling’s permutation-avoidance sequences A189358, A189565, A189563. The engine matches all four.
The check that matters most is the newest one. A calibration on old terms tells you the machine was right yesterday. When the table was extended to n = 14 on 2026‑08‑17, the four flat values it produced were compared against the four published sequences — and landed on them exactly:
| piece | computed here, n = 14 | published |
|---|---|---|
| knight | 2,586,423,174 | A137774 |
| camel | 3,131,979,014 | A189358 |
| zebra | 4,090,634,212 | A189565 |
| giraffe | 4,285,522,402 | A189563 |
Four numbers, four authors, none of them us, none of them consulted until after the run. That is why the eight uncatalogued n = 14 terms computed in the same pass — where nobody can check us — are worth something. (Read from the OEIS JSON API on 2026‑08‑17, offsets checked rather than assumed. All four align as our n = a(n). A137774 has offset 1; the three Kimberling entries have offset 0, so they additionally publish a(0) = 1, which shifts their position in the printed list by one but not their index. The thirteen terms below confirm the alignment either way.)
2 — the torus reproduces the previous stratum
Glue both pairs straight and the engine returns the Leapers on a Torus table exactly (knight 1, 2, 0, 8, 10, 72, 210, 1408, …), whose own C backtracker reaches n = 13 and whose queen case reproduces A007705.
3 — the king cross-check pins the twisted geometry
A king is just the eight unit leapers. Fed those, the model reproduces the already-validated king attack graph from nonorientable-queens — cell for cell, on the Möbius band and Klein bottle themselves, not only the flat and toroidal boards. This is the one move where "unfold and fold back" and "take a single step across the seam" must give the same answer, and they do (816 cells checked). So the twisted geometry is certified, not just the flat calibration.
4 — four enumerators, and exactly how far each check reaches
This certificate used to overstate itself, and the correction is worth more than the original claim. Until 2026‑08‑17 it said three independent code paths carried the table. In the repository, the committed cross-check compared two of them and only to n = 8; nothing ever ran the third; and the fast gate asserts the flat and torus rows only to n = 10 and the twisted rows only to n = 11. This page printed n = 1..13. So the terms no reader can check by hand were exactly the terms no committed check reached.
What is true now. There are four enumerators: a bitmask backtracker, a column-DFS, leap.c, and leap2.c, which was written to disagree — it folds by applying the surface’s deck generators one at a time instead of by floor-and-modulo arithmetic, and it searches by propagating forbidden-column masks and always filling the most constrained row, so it walks the tree in a different order. agree.mjs now runs them over the whole published range and prints which n each path actually reached; it will not say “agree” about an n it did not visit. Every term of the n = 14 column was computed twice, by paths sharing no geometry code and no search order.
And the geometry is now checked in the opposite direction. All the enumerators fold a target back onto the board; lift-check.mjs unfolds each cell into the cover and asks whether any lift sits one leaper vector away — the definition rather than its shortcut. 6,080 adjacency masks, four surfaces, four pieces, and a positive control, because a comparison that cannot fail is not evidence.
What could still be wrong
An absent OEIS search is evidence of absence, not proof: a definition of these counts could live in a paper under a name that never became a catalogue entry. The honest claim is exactly "uncatalogued as far as we found, 2026‑07‑13" — not "new to mathematics." The gluing conventions are the standard ones (Möbius = left/right with a vertical flip, rows a free boundary, after Bell & Stevens; Klein = columns straight, rows glued with a horizontal flip), and they are stated in the code so a reader can adopt a different one and recompute.
And the limit that four agreeing programs do not remove. This page used to end by saying everything on it re-derives from the committed enumerators on every run. That was not true, and the honest version is more useful: the fast gate re-derives the flat and torus rows to n = 10 and the twisted rows to n = 11 in a couple of minutes, and the full four-path run reaching n = 14 is a slow job whose dated receipt is committed rather than something that happens on every visit. Beyond that: four agreeing paths are four chances to catch a mistake, not a proof. They share the convention — the vector set, the one-per-row-and-column rule, the deck groups — and no amount of agreement between implementations can certify the definition they all implement. What guards the definition is the king cross-check against independently written code, the fold-versus-unfold check, and the flat row landing on four sequences other people published.