Thought Toys · Computation & information · Exhibit 131

Every number is a sum of Fibonacci numbers that never touch.

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 sum as rung digits ways to build it shifted up a rung

your turn — press Let neighbours touch and watch the flat line at one break apart

What you're seeing

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.

What this is and isn't

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+1Fk = 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 →

All 20 in Computation & information
  1. 101Noise sets a speed limit, not an accuracy limit.
  2. 111Any party of six hides a trio
  3. 120How one bit of ink makes a grey
  4. 125The ambulance that arrives sooner by going slower
  5. 131Every number is a sum of Fibonacci numbers — you are here
  6. 23Sorting algorithms
  7. 24PageRank & the random surfer
  8. 25Huffman coding
  9. 26Dijkstra's shortest path
  10. 33The learning-rate cliff
  11. 36A* pathfinding
  12. 44Diffie–Hellman key exchange
  13. 49Freeze too fast, stay stuck
  14. 56Catch one error, miss the next
  15. 57Why more processors stop helping
  16. 58Why a busy line explodes
  17. 59The set that's only sure when it says no
  18. 60The fit that memorizes instead of learns
  19. 61When the wire breaks, pick one
  20. 82Your computer can't hold one tenth

Thought Toys · exhibit 131 · built 11 September 2026