Skip to content

Solución: Adelgazando después de Navidad

by en 19/01/2014

¡Hola!

Tras la semana de rigor, llega la hora de resolver nuestro acertijo de la semana. En él, os contábamos la historia de un amigo que, en lugar de darnos su peso, nos decía que pensaba adelgazar tantos kilos como su peso sin la última cifra, y nos decía el peso objetivo que quería conseguir. Os preguntábamos el peso de partida.

¡Muchas gracias por vuestros comentarios! Gualterio no dio la respuesta completa; y es que en la explicación del acertijo ocultamos el pequeño detalle de la posible existencia de múltiples soluciones 🙂 David se lo hizo ver y nos envió su código en Python, que utilizaba tanteo, no como la de Gualterio, que usaba una fórmula. Óscar no nos enseñó el código, pero su intento también debía usar una fórmula.

Vamos con nuestra solución. Al ver el acertijo, con el primer peso que os preguntábamos (65), es verdad que lo más natural es tantear. Y es fácil llegar a la respuesta: 72 kilos; ocurre lo mismo con 75, cuya respuesta es 83, y con, quizá, 81. Pero éste último tiene una trampa escondida, porque tiene dos soluciones: 89 y 90.

La aparición de dos soluciones puede hacernos plantearnos ¿no habrá más soluciones en los otros dos? Al fin y al cabo hemos tanteado y al encontrarnos la solución hemos dejado de probar. Pero… ¿cómo podemos estar seguros de que no habrá un número de, pongamos, 8 cifras que al ser restado por sí mismo sin el último dígito no de exactamente 65, 75 o incluso 83? ¿Podéis garantizarlo?

En realidad, matemáticamente podemos estar seguros de que no será así; pero ya sabéis que en nuestras explicaciones nos gustan las tablas, de modo que en lugar de ponernos a demostrar las cosas matemáticamente vamos a resolver el acertijo al contrario. Vamos a hacer una tabla en la que, sabiendo el peso de partida obtendremos el peso final. ¡Esto es justo lo contrario que nos piden! El objetivo es dar algo de luz al funcionamiento del acertijo y a sus respuestas:

N 11 12 13 14 15 16 17 18 19 20
N-(N//10) 10 11 12 13 14 15 16 17 18 18
N 21 22 23 24 25 26 27 28 29 30
N-(N//10) 19 20 21 22 23 24 25 26 27 27
N 31 32 33 34 35 36 37 38 39 30
N-(N//10) 28 29 30 31 32 33 34 35 36 36

¡No os liéis con la tabla! Las filas “N” indican en realidad el número que nos están pidiendo, y las filas “N-N//10” indican el que nos dan. Pero, por comodidad, la hemos rellenado al contrario. Es decir, para cada N, hemos calculado su resultado, que es más fácil que lo contrario. Por ejemplo, para N=37, el resultado es 34 (37 – 3). Si tuviéramos la tabla completa, podríamos resolver el acertijo leyéndola al contrario. Por ejemplo, si nos dicen que el peso objetivo es 18, tendríamos que buscar dónde aparece en la fila N-N//10, veríamos que está dos veces, y por tanto la respuesta son los pesos iniciales (N) 19 y 20 kilos. Por cierto, ponemos N//10 (con dos barras) para indicar división entera, usando la notación del lenguaje Python, de manera que 37 // 10 es 3 (y no 3.7 si usáramos una división con decimales).

Lo importante que nos enseña la tabla es que aparece un patrón. Fijaos que cuando N cambia de decena, el resultado (peso objetivo) se repite. ¡Eso es lógico! Al cambiar de decena incrementamos en uno N, pero también N-N // 10 (él mismo sin el último dígito), por tanto la resta es la misma. En el resto de los casos (cuando no hay cambio de decena), el peso objetivo siempre se incrementa. Es fácil encontrar un patrón en el resultado: vamos sumando uno al resultado anterior y, tras 9 veces, repetimos el último número. Con este funcionamiento es imposible que haya números de 8 dígitos que, tras restarse a sí mismos, den el 65 🙂

¿Veis ahora de dónde sale el 10/9 que nos comentaron Gualterio y Óscar? Si nos dicen que el peso objetivo (N-N//10) es, por ejemplo, el 25, tenemos que averiguar cuántos “bloques de 9” llevamos, y para eso dividimos por 9. Cada bloque de 9 en el peso objetivo (filas N-N//10) supone 10 números en el resultado (fila N) y por tanto también multiplicamos por 10. Hay que tener cuidado con el caso de dos soluciones. Saber cuándo hay dos soluciones es fácil. Podemos detectarlo si la solución acaba en 0 (es múltiplo de 10) o incluso mirar si el número que nos dan es divisible por 9 (en la tabla, 18, 27 y 36 lo son).

Después de todo esto, es relativamente fácil llegar a las respuestas para los pesos mayores. Si el peso objetivo es 500, el original sería 555, con 900 sería 999 o 1.000, y con 12.345 sería 13.716.

Como siempre, si tras la explicación os animáis a programarla, podéis probar vuestra solución aquí.

¡Hasta mañana!

Anuncios

From → Soluciones

Dejar un comentario

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: