Hugo Cardoza

Solución al acertijo del cofre de Adamoni

Un cofre da 4% cada año del total acumulado. Acepta depósitos idénticos mes a mes pero la magia ocurre sólo anualmente. Se ha estado depositando 10 monedas cada mes por 23 años:

¿cuánto hay en total al final del periodo?

Inventé un acertijo para reyes magos con tres objetivos. El primero es ilustrar el poder de la inversión y los rendimientos compuestos. Una forma de replantear el problema es decir: cada año se depositan 120 monedas y el cofre mágico –metáfora para un banco o fondo de inversión– da un 4% anual sobre el acumulado.

Interés compuesto

Entonces el primer año sólo hay 120 monedas, entonces toca unas 4.8 monedas extras (120 x 0.40). Otra forma de anotarlo es 120 x (1.04) = 124.8

Antes de calcular la respuesta ¿cuánto dinero te imaginar habrá al final de 23 años?


Una de las respuestas que obtuve es 2870.40 pero sólo está considerando que se da 4% al final del periodo y no acumula cada año. No compone. Vamos a ver cómo obtener el monto total.

Una forma de resolverlo es con la calculadora. Empiezas con el año 1 que ya vimos es 124.8 y luego sumas 120 para volver a multiplicar por 1.04, es decir, sumar el 4% (0.04) al monto existente (osea el 100% o 1.00). Continuas, el monto resultante le sumas 120 y luego multiplicas 1.04, asi 23 veces en total.

Nota el poder de multiplicar por algo mayor a 1 cada ocasión. No es lo mismo 120 x 23 años y luego todo por 1.04. Que ((120 * 1.04) + 120) x 1.04) … Este es el poder del interés compuesto. Lo ya ganado aporta a la próxima ronda.

Programación

Mi segundo objetivo es introducir a mis familiares y amigos a la programación ¡vayamos! La programación no es más que dar una serie de instrucciones que la computadora puede ejecutar. Se trata de escribir texto para no gastarte el dedo en la calculadora.

Voy a poner el código en Javascript que es uno de los lenguajes más usados en la web. Incluso lo puedes correr en tu explorador, en Chrome haces clic en F12 y te abre la consola de desarrollo. Ahí puedes copiar y pegar el código:

`// Guardo en variables (memoria) los datos relevantes.   
let montoTotal = 0; // Empezamos en 0 el primer año
let depositoAnual = 120; // 12 * 10 (doce veces el monto mensual)
let rendimiento = 0.04; // 4%

// Vamos a decirle que haga la suma por 23 veces
for (let n = 1; n<=23; n=n+1){
// El `for` es la manera de decir:
// • por cada n, empezando en 1; 
// • mientras que n sea menor o igual a 23; 
// • incrementa n en cada paso por 1 (tambien se usa n++)
	montoTotal = (montoTotal + depositoAnual) * (1 + rendimiento);
 // Osea montoTotal(nuevo) = (montoTotal(anterior) + 120) * 1.04; 
	console.log(`Año ${n}: ${montoTotal}`); // Imprimimos
}

El código trata de hacer el proceso tedioso de agarrar el monto actual, sumarle los 120 para luego añadir el 4%. Llamaré al monto total en el año n como T_n or T(n). Entonces tenemos para el año cero, T(0) = 0; T(1)= 124.8; T(2) = 254.592 y así sucesivamente.

Tip: Si te confunde n, piensa que cuando decimos por enésima vez justo estamos diciendo por n-sima vez como diriamos por decima o tercera vez. n representa cualquier número, cuando te regañan por enésima vez, n es usualmente un montón.

El resultado da que para el año 23 hay algo alrededor de 4569.91 monedas.

Si programar aún te suena muy complicado la otra opción es abrir la hoja de calculo:

AñoDepositadoMonto antes
de bono
BonoMonto al
final de año
11201204.8124.8
2240244.89.792254.592
3360374.59214.98368389.57568
4480509.5756820.3830272529.9587072
5600649.958707225.99834829675.9570555
6720795.957055531.83828222827.7953377
7840947.795337737.91181351985.7071512
89601105.70715144.228286051149.935437
910801269.93543750.797417491320.732855
1012001440.73285557.629314191498.362169
1113201618.36216964.734486761683.096656
1214401803.09665672.123866231875.220522
1315601995.22052279.808820882075.029343
1416802195.02934387.801173712282.830517
1518002402.83051796.113220662498.943737
1619202618.943737104.75774952723.701487
1720402843.701487113.74805952957.449546
1821603077.449546123.09798183200.547528
1922803320.547528132.82190113453.369429
2024003573.369429142.93477723716.304206
2125203836.304206153.45216833989.756375
2226404109.756375164.3902554274.146629
2327604394.146629175.76586524569.912495
Total2760+1809.9124954569.912495

Fijate aca como acabas depositando 2760 monedas pero ¡los intereses aportan 1809.91 tantos! Casi duplican lo que ahorras. Y eso es con tan solo 4%. En México, los Cetes, una inversión relativamente segura, han estado arriba de 10% anual solo para dar un ejemplo. NO es consejo financiero ; )

Si invirtieras solo 100 pesos y lo dejas trabajar 23 años (osea sin otras aportaciones). Con un 4% la fórmula es 100*(1.04)^23 = 246.47 dineros. Tendrías más del doble en 23 años ¿No te dan ganas de invertir?

Hay una regla de dedo conocida como la “Regla del 72” para estimar cuánto tardará en duplicarse el dinero. Tiempo para duplicar = 72/Tasa de interés anual. Por ejemplo, 72/4 = 18 años. Y sí, ya tendrías más de 202 para el año 18.

Pero esto es cuando interés compuesto sencillo, sin más aportaciones. Para el acertijo hay una fórmula que nos puede ayudar, la serie geométrica pero no cunda el pánico, ahora explico que es.

Adamoni haciendo cálculos matemáticos

Serie Geométrica

El tercer objetivo es homenajear y compartir mi pasión por los acertijos, la programación y las matemáticas. Venga, en resumen: la lógica.

Te invito a seguir conmigo para encontrar una forma de resolver nuestro problema y ¡ver lo genial que son las mates! ¡Si te surgen dudas, con gusto escríbelas y haré mi mejor esfuerzo por contestarlas!

Recuerda que si no te gustan las matemáticas es por qué aún no has tenido al maestro adecuado.

Empecemos con la fórmula que escribí antes T(n) = (T(n-1) + 120) * 1.04 ó (T(n-1) + delta) * (1+tasa). La última parte es para generalizar la fórmula. d es el monto anual y r la tasa mas el 100%, 1.04.

T_n = (T_{n-1} + 120) * 1.04 \\ T_n = (T_{n-1} + d) * r

Los primos términos empezando con T(0) quedan de la siguiente manera. En nuestro ejemplo T(1) = 120 * 1.04 = 124.8, comprueba que T(2) = 120(1.04)^2 + 120 * 1.04

\begin{align*}
T_0 &= 0 \\ T_1 &= (T_0 + d )* r = 0r + dr = dr
\\ T_2 &= (dr+d )*r = dr^2 + dr
\\ T_3 &= (T_2 + d)*r = dr_3+dr^2 + dr\\
\end{align*}

Empieza a verse un patrón aquí

Tn = dr^n + dr^{n-1} + ... + dr^2 + dr

En matemáticas escribimos la suma anterior con la siguiente notación:

Tn = \sum_{k=1}^{n} dr^k

También podemos escribir esta fórmula en código. Queda parecido a lo que tenemos pero ahora podemos calcular directamente el año n, para nosotros el 23.

let montoTotal = 0;
let depositoAnual = 120; // 12*10 (montoMensual)
let rendimiento = 0.04; 
let r = 1+ rendimiento;

// Vamos a decirle que haga la suma por 23 veces
for (let n = 1; n<=23; n=n+1){
	montoTotal += 120*(r)**n;
}
console.log(`Año 23: ${montoTotal}`);

¡Pero podemos mejorar! Seguimos dependiendo de hacer un paso n veces y somos matemáticos, podemos hacer lo mejor. Para eso vamos a ver un truco en la fórmula anterior.

\begin{align}
T_n &= dr^n + dr^{n-1} + ... + dr^2 + dr \\ 
r* T_n &= dr^{n+1} + dr^n + .... + dr^3 + dr^2 \\
\end{align}

Multipliqué la formula (1) por `r` pues ya veras que pasa al restar (2) – (1):

\begin{align*}

r* T_n &=     dr^{n+1} + dr^n + .... +\ \ \  dr^3 + dr^2 \\
T_n &= \hspace{3em} \ \ \ dr^n + dr^{n-1} + ... + dr^2 + dr \\ 
\end{align*}

Fijate en los términos individuales, cómo comparten casi todos ¡excepto por dos!

\begin{align*}
rTn - T_n &=dr^{n+1} -dr\\

T_n(r-1) &= d(r^{n+1} -r) \\
&\Rightarrow\\
T_n &=  d \frac{(r^{n+1} -r)}{r-1}
\end{align*}

Entonces ahora no necesito un for-loop. De un solo cálculo puedo obtener el año que sea.

Tn = \sum_{k=1}^{n} dr^k = d \frac{1-r^{n+1}}{1-r}
let montoTotal = 0;
let depositoAnual = 120; // 12*10 (montoMensual)
let rendimiento = 0.04; 
let r = 1+ rendimiento;
montoTotal = depositoAnual * ( (1-r**(23+1))/(1-r));
console.log(`Año 23: ${montoTotal}`);

Hasta aquí dejo las respuestas. Espero hayas disfrutado de este texto tanto como yo lo hice al escribirlo. Pero lo más genial sería que hayas aprendido algo de él.

Preguntas adicionales para los curiosos:

  1. ¿Cuánto tiempo tardaría Adamoni para que el monto total de monedas sea igualado o rebasado por las pepitas de oro, es decir los intereses ganados? O sea cada año son 120 monedas, entonces en qué año (X), 120*x ≤ suma(interes ganados hasta ese año)
  2. ¿Cuánto oro habrá si se sigue haciendo todo por 2023 años, en vez de 23?

¡Gracias a los que contestaron el acertijo!