IMO 2010 · Problem 1

Determine all functions \(f:\mathbb R\to\mathbb R\) such that the equality \[ f(\lfloor x\rfloor y)=f(x)\lfloor f(y)\rfloor \] holds for all \(x,y\in\mathbb R\). (Here \(\lfloor z\rfloor\) denotes the greatest integer less than or equal to \(z\).)

Official text of the problem. Official problem paper (PDF)

Answer

All constant functions \[ \boxed{f(x)=c\quad\text{for all }x\in\mathbb R,\qquad c\in\{0\}\cup[1,2).} \]

Solution

Setting \(x=1\) in the given equation yields \[ f(y)=f(1)\lfloor f(y)\rfloor \qquad(y\in\mathbb R). \] If \(f(1)=0\), this gives \(f\equiv0\).

Now suppose \(f(1)\ne0\). Taking \(x=y=1\), we obtain \[ f(1)=f(1)\lfloor f(1)\rfloor, \] so \(\lfloor f(1)\rfloor=1\). Therefore, setting \(y=1\) in the original equation gives \[ f(\lfloor x\rfloor)=f(x)\qquad(x\in\mathbb R). \] In particular, \[ f\left(\tfrac12\right)=f(0). \] Next, taking \(x=2\) and \(y=\tfrac12\), we find \[ 0\ne f(1)=f(2)\left\lfloor f\left(\tfrac12\right)\right\rfloor =f(2)\lfloor f(0)\rfloor. \] Consequently, \(\lfloor f(0)\rfloor\ne0\).

Finally, setting \(y=0\) in the original equation gives \[ f(0)=f(x)\lfloor f(0)\rfloor\qquad(x\in\mathbb R). \] Dividing by the nonzero number \(\lfloor f(0)\rfloor\) shows that \(f\) is constant.

For a constant function \(f(x)=c\), the original equation is equivalent to \[ c=c\lfloor c\rfloor. \] This holds precisely when \(c=0\) or \(\lfloor c\rfloor=1\), the latter being equivalent to \(1\le c<2\). Thus every function listed in the answer satisfies the equation, and there are no others.

The solution was checked against the official IMO shortlist solutions.