Una función $f$ está definida sobre los enteros positivos mediante
\begin{eqnarray}
f(1)&=&1,\qquad f(3)=3,\\
f(2n)&=&f(n),\\
f(4n+1)&=&2f(2n+1)-f(n),\\
f(4n+3)&=&3f(2n+1)-2f(n).
\end{eqnarray}
Determinar el número de enteros positivos $n\leq 1988$ tales que $f(n)=n$.
Solución. Las relaciones dadas en el enunciado determinan completamente $f(n)$. Al depender formalmente el valor de $f(n)$ del resto de dividir $n$ entre $4$, esto nos pone sobre aviso de trabajar en otra base. Concretamente, trabajaremos en base $2$. En este punto del razonamiento, sería interesante hacer pruebas con números pequeños (por ejemplo, calcular desde $f(1)$ hasta $f(20)$ para tener una mínima intuición de cómo se comporta $f$ y motivar lo que sigue). Vamos a probar que $f$ toma un número en base $2$ e invierte el orden de sus cifras.
Antes de entrar en el detalle de la demostración, observemos que si $n$ se escribe como $a_k\cdots a_1a_0$ en base $2$, donde $a_0,\ldots,a_k$ son sus dígitos, entonces tenemos que
\begin{eqnarray}
2n&=&a_k\cdots a_1a_00\\
2n+1&=&a_k\cdots a_1a_01\\
4n+1&=&a_k\cdots a_1a_001\\
4n+3&=&a_k\cdots a_1a_011
\end{eqnarray}
Visto eso, procedamos por inducción completa sobre $n$. Para $n=1,2,3,4$ el resultado se comprueba fácilmente ya que, en base 2, $f(1)=1$, $f(10)=f(1)=1$, $f(11)=11$ y $f(100)=f(10)=f(1)=1$. Supongamos entonces que $f(j)$ invierte las cifras de $j$ en base $2$ para $1\leq j\lt n$ y probémoslo para $n$, distinguiendo casos:
- Si $n$ es par, entonces $n=2j$ y $f(n)=f(2j)=f(j)$ por la propiedad del enuncidado. Por hipótesis de inducción, $f(j)$ es invertir las cifras de $j$ en base $2$, pero, como $n$ termina en $0$ en base $2$, es equivalente a invertir las cifras de $n$.
- Si $n=4j+1$, entonces $f(n)=f(4j+1)=2f(2j+1)-f(j)$. Escribamos $j=a_k\cdots a_1a_0$ en base $2$, con lo que $n=a_k\cdots a_1a_001$ y tenemos que probar que $f(n)=10a_0\cdots a_k$. La hipótesis de inducción nos dice que $f(j)=a_0\cdots a_k$ y $2f(2j+1)=1a_0\cdots a_k0$. Como las últimas cifras de $2f(2j+1)$ son $a_0\cdots a_k0=2f(j)$, es fácil darse cuenta de que $f(n)=2f(2j+1)-f(j)=10a_0\cdots a_k$ como queríamos probar.
- Si $n=4k+3$, entonces $f(n)=3f(2j+1)-2f(j)$. Si escribimos $j=a_k\cdots a_1a_0$ en base $2$, entonces se razona de forma análoga al punto anterior que $n=a_k\cdots a_1a_011$ y $3f(2j+1)-2f(j)=11a_0\cdots a_k$.
Queda por calcular el número de enteros positivos $n\leq 1988$ tales que $f(n)=n$, lo que equivale a encontrar los números $n\leq 1988$ que son capicúa en base $2$, es decir, que se escriben igual de derecha a izquierda que de izquierda a derecha. En base $2$ tenemos que $1988$ se escribe $11111000100$, que tiene $11$ cifras. Hay un solo capicúa con $1$ cifra, también hay un solo capicúa con $2$ cifras (el $11$), con $3$ cifras hay $2$ capicúas (el $101$ y el $111$) y, en general, hay $2^k$ capicúas con $2k$ cifras y $2^k$ capicúas con con $2k-1$ cifras. Por tanto, hay $1+1+2+2+4+4+8+8+16+16+32=94$ capicúas con a lo sumo $11$ cifras, pero sólo dos de ellos son mayores que $11111000100$ (el $11111011111$ y el $11111111111$), luego el número buscado es $92$.