Thought Toys · Computation & information · Exhibit 131
Take any whole number. There is exactly one way to build it from Fibonacci numbers without ever using two that sit next to each other — and the greedy method, which normally gets things nearly right, finds it every time. Let the two touch and the uniqueness does not weaken. It shatters.
One number, taken apart — and how many ways there are to build each one ● rung used ● rung skipped — ways to build it
—
—
The ladder is the Fibonacci numbers: 1, 2, 3, 5, 8, 13, 21, and so on, each the sum of the two below it. The greedy method takes the biggest rung that still fits, subtracts it, and repeats on what is left. The amber rungs are the ones it took.
Notice that no two amber rungs ever touch. That is not a rule the method is following. It falls out of the ladder itself. Greed takes the largest rung that fits, so the number was below the next rung up. That rung is the sum of the two beneath it. What is left over is therefore smaller than the rung immediately below the one just taken, so the next rung you can reach is always at least two down.
The surprise is that this is the only way. Not the neatest way or the shortest way — the only one. Every whole number has exactly one non-touching Fibonacci sum, which makes these rungs a counting system in their own right. Like binary, it gives each number a single spelling. Unlike binary, its place values are Fibonacci numbers and no two digits may sit side by side. The readout above writes it out, and the chart below shows the uniqueness holding: an amber line pinned at one.
Now press Let neighbours touch. Nothing about the numbers changed; one restriction lifted. The count leaps into double figures and jitters from one integer to the next. So uniqueness is not a property of the Fibonacci numbers on their own — it needs the gap. It needs the ladder too: move one rung from 13 to 12 and greed starts grabbing neighbours within the first three hundred numbers.
The last button is the reason this is more than a curiosity. Slide every chosen rung one place up the ladder — 89 becomes 144, 8 becomes 13, 3 becomes 5 — and add them again. The answer is the old one multiplied by 1.618, the golden ratio — not exactly, but never far off. And 1.618 happens to be almost exactly the number of kilometres in a mile.
So 100 miles, which is 89 + 8 + 3, becomes 144 + 13 + 5 = 162 kilometres. The true answer is 160.9. You have just done a unit conversion by shifting digits, the way you multiply by ten by adding a zero.
It works because of a fact you can check in the top panel: the error stays put. It wanders up and down as you slide, but however large the number gets, the shifted sum never sits more than 0.618 away from the golden-ratio answer. A bounded error against a growing answer is an error that fades. That is why one mile is hopeless and a hundred is fine.
The ladder has exactly one 1 on it, which matters more than it looks. The Fibonacci sequence usually starts 1, 1, 2, 3, and if you hand the method both 1s the uniqueness collapses immediately — over half the numbers pick up a second representation.
And the shift trick converges on the golden ratio, not on the right answer. The golden ratio and the real conversion factor differ by 0.54%, so that is the floor: a hundred miles lands within a kilometre, and no amount of extra size gets you closer than about half a per cent.
The rule, exactly. Take the Fibonacci numbers with one 1: 1, 2, 3, 5, 8, 13, …
Zeckendorf's theorem states that every positive integer is a sum of distinct terms of this ladder,
no two of them consecutive, in exactly one way. Distinctness matters as well as the gap: without it 4 = 2 + 2
would be a second reading. The greedy method finds it, and the reason is a one-line identity:
Fk+1 − Fk =
Fk−1 < Fk
so after subtracting the largest rung that fits, the remainder is below the rung one place down, which
cannot then be taken. The result was proved by Lekkerkerker in 1952 and named for Zeckendorf, who
published in 1972. For the shift, Binet's formula gives
Fk+1 − φFk =
ψk exactly, with ψ = −1/φ. Summing that over non-touching rungs
bounds the whole error at ψ²/(1 − ψ²) = 1/φ = 0.618.
Checked before this page was written (improve/verify/131-zeckendorf.js):
Also in Computation & information: Sorting algorithms →
Thought Toys · exhibit 131 · built 11 September 2026