Zeckendorf's theorem

From testwiki
Jump to navigation Jump to search

Template:Short description

The first 89 natural numbers in Zeckendorf form. Each rectangle has a Fibonacci number Template:Math as width (blue number in the center) and Template:Math as height. The vertical bands have width 10.

In mathematics, Zeckendorf's theorem, named after Belgian amateur mathematician Edouard Zeckendorf, is a theorem about the representation of integers as sums of Fibonacci numbers.

Zeckendorf's theorem states that every positive integer can be represented uniquely as the sum of one or more distinct Fibonacci numbers in such a way that the sum does not include any two consecutive Fibonacci numbers. More precisely, if Template:Mvar is any positive integer, there exist positive integers Template:Math, with Template:Math, such that

N=i=0kFci,

where Template:Mvar is the Template:Mvarth Fibonacci number. Such a sum is called the Zeckendorf representation of Template:Mvar. The Fibonacci coding of Template:Mvar can be derived from its Zeckendorf representation.

For example, the Zeckendorf representation of 64 is

Template:Math.

There are other ways of representing 64 as the sum of Fibonacci numbers

Template:Math
Template:Math
Template:Math
Template:Math

but these are not Zeckendorf representations because 34 and 21 are consecutive Fibonacci numbers, as are 5 and 3.

For any given positive integer, its Zeckendorf representation can be found by using a greedy algorithm, choosing the largest possible Fibonacci number at each stage.

History

While the theorem is named after the eponymous author who published his paper in 1972, the same result had been published 20 years earlier by Gerrit Lekkerkerker.[1] As such, the theorem is an example of Stigler's Law of Eponymy.

Proof

Zeckendorf's theorem has two parts:

  1. Existence: every positive integer Template:Mvar has a Zeckendorf representation.
  2. Uniqueness: no positive integer Template:Mvar has two different Zeckendorf representations.

The first part of Zeckendorf's theorem (existence) can be proven by induction. For Template:Math it is clearly true (as these are Fibonacci numbers), for Template:Math we have Template:Math. If Template:Math is a Fibonacci number then there is nothing to prove. Otherwise there exists Template:Mvar such that Template:Math. Now suppose each positive integer Template:Math has a Zeckendorf representation (induction hypothesis) and consider Template:Math. Since Template:Math, Template:Mvar has a Zeckendorf representation by the induction hypothesis. At the same time, Template:Math (we apply the definition of Fibonacci number in the last equality), so the Zeckendorf representation of Template:Mvar does not contain Template:Math, and hence also does not contain Template:Math. As a result, Template:Math can be represented as the sum of Template:Mvar and the Zeckendorf representation of Template:Mvar, such that the Fibonacci numbers involved in the sum are distinct.[2]

The second part of Zeckendorf's theorem (uniqueness) requires the following lemma:

Lemma: The sum of any non-empty set of distinct, non-consecutive Fibonacci numbers whose largest member is Template:Mvar is strictly less than the next larger Fibonacci number Template:Math.

The lemma can be proven by induction on Template:Mvar.

Now take two non-empty sets S and T of distinct non-consecutive Fibonacci numbers which have the same sum, xSx=xTx. Consider sets S and T which are equal to S and T from which the common elements have been removed (i. e. S=ST and T=TS). Since S and T had equal sum, and we have removed exactly the elements from ST from both sets, S and T must have the same sum as well, xSx=xTx.

Now we will show by contradiction that at least one of S and T is empty. Assume the contrary, i. e. that S and T are both non-empty and let the largest member of S be Template:Mvar and the largest member of T be Template:Mvar. Because S and T contain no common elements, Template:Math. Without loss of generality, suppose Template:Math. Then by the lemma, xSx<Fs+1, and, by the fact that Fs<Fs+1Ft, xSx<Ft, whereas clearly xTxFt. This contradicts the fact that S and T have the same sum, and we can conclude that either S or T must be empty.

Now assume (again without loss of generality) that S is empty. Then S has sum 0, and so must T. But since T can only contain positive integers, it must be empty too. To conclude: S=T= which implies S=T, proving that each Zeckendorf representation is unique.[2]

Fibonacci multiplication

One can define the following operation ab on natural numbers Template:Mvar, Template:Mvar: given the Zeckendorf representations a=i=0kFci(ci2) and b=j=0lFdj(dj2) we define the Fibonacci product ab=i=0kj=0lFci+dj.

For example, the Zeckendorf representation of 2 is F3, and the Zeckendorf representation of 4 is F4+F2 (F1 is disallowed from representations), so 24=F3+4+F3+2=13+5=18.

(The product is not always in Zeckendorf form. For example, 44=(F4+F2)(F4+F2)=F4+4+2F4+2+F2+2=21+28+3=40=F9+F5+F2.)

A simple rearrangement of sums shows that this is a commutative operation; however, Donald Knuth proved the surprising fact that this operation is also associative.[3]

Representation with negafibonacci numbers

The Fibonacci sequence can be extended to negative index Template:Mvar using the rearranged recurrence relation

Fn2=FnFn1,

which yields the sequence of "negafibonacci" numbers satisfying

Fn=(1)n+1Fn.

Any integer can be uniquely represented[4] as a sum of negafibonacci numbers in which no two consecutive negafibonacci numbers are used. For example:

Template:Math, for example, so the uniqueness of the representation does depend on the condition that no two consecutive negafibonacci numbers are used.

This gives a system of coding integers, similar to the representation of Zeckendorf's theorem. In the string representing the integer Template:Mvar, the Template:Mvarth digit is 1 if Template:Mvar appears in the sum that represents Template:Mvar; that digit is 0 otherwise. For example, 24 may be represented by the string 100101001, which has the digit 1 in places 9, 6, 4, and 1, because Template:Math. The integer Template:Mvar is represented by a string of odd length if and only if Template:Math.

See also

References

Template:Reflist

Template:PlanetMath attribution