IMO 1993

------
 
 
Problem B2

Does there exist a function f from the positive integers to the positive integers such that f(1) = 2, f(f(n)) = f(n) + n for all n, and f(n) < f(n+1) for all n?

 

Answer

Yes: f(n) = [g*n + ½], where g = (1 + √5)/2 = 1.618 ... .

 

Solution

This simple and elegant solution is due to Suengchur Pyun

Let g(n) = [g*n + ½]. Obviously g(1) = 2. Also g(n+1) = g(n) + 1 or g(n) + 2, so certainly g(n+1) > g(n).

Consider d(n) = g* [g*n + ½] + ½ - ( [g*n + ½] + n). We show that it is between 0 and 1. It follows immediately that g(g(n)) = g(n) + n, as required.

Certainly, [g*n + ½] > g*n - ½, so d(n) > 1 - g/2 > 0 (the n term has coefficient g2 - g - 1 which is zero). Similarly, [g*n + ½] ≤ g*n + ½, so d(n) ≤ g/2 < 1, which completes the proof.

I originally put up the much clumsier result following:

Take n = brbr-1 ... b0 in the Fibonacci base. Then f(n) = brbr-1 ... b00. This satisfies the required conditions.

Let u0 = 1, u1 = 2, ... , un=un-1+un-2, ... be the Fibonacci numbers. We say n = brbr-1 ... b0 in the Fibonacci base if br = 1, every other bi = 0 or 1, no two adjacent bi are non-zero, and n = brur + ... + b0u0. For example, 28 = 1001010 because 28 = 21 + 5 + 2.

We have to show that every n has a unique expression of this type. We show first by induction that it has at least one expression of this type. Clearly that is true for n = 1. Take ur to be the largest Fibonacci number ≤ n. Then by induction we have an expression for n - ur. The leading term cannot be ui for i > r - 2, for then we would have n >= ur + ur-1 = ur+1. So adding ur to the expression for n - ur gives us an expression of the required type for n, which completes the induction.

We show that ur + ur-2 + ur-4 + ... = ur+1 - 1. Again we use induction. It is true for r = 1 and 2. Suppose it is true for r - 1, then ur+1 + ur-1 + ... = ur+2 - ur + ur-1 + ur-3 + ... = ur+2 - ur + ur - 1 = ur+2 - 1. So it is true for r + 1. Hence it is true for all r. Now we can prove that the expression for n is unique. It is for n = 1. So assume it is for all numbers < n, but that the expression for n is not unique, so that we have n = ur + more terms = us + more terms. If r = s, then the expression for n - ur is not unique. Contradiction. So suppose r > s. But now the second expression is at most us+1 - 1 which is less than ur. So the expression for n must be unique and the induction is complete.

It remains to show that f satisfies the required conditions. Evidently if n = 1 = u0, then f(n) = u1 = 2, as required. If n = ua1 + ... + uar, then f(n) = ua1+1 + ... + uar+1 and f(f(n)) = ua1+2 + ... + uar+2. So f(n) + n = (ua1 + ua1+1) + ... + (uar + uar+1) = f(f(n)).

 


 

Solutions are also available in   István Reiman, International Mathematical Olympiad 1959-1999, ISBN 189-8855-48-X.

 

39th IMO 1998

© John Scholes
jscholes@kalva.demon.co.uk
27 Jul 2001
Last corrected/updated 25 Aug 03