Skip to content

Sumando números: solución

by en 24/03/2013

Hola!

Tras dejaros tooooda una semana para resolver el acertijo, llega la hora de contaros la solución. ¡¡Muchas gracias a todos los que lo habéis intentado!! De todos ellos, sólo Gualterio acertó… Veamos por qué.

El acertijo que os poníamos consistía en buscar la forma más rápida de sumar varios números, sabiendo que, por la extraña forma de calcular de una primitiva civilización, la suma de los números a y b requería a+b segundos.

El ejemplo que os poníamos era la suma de 1+2+3+4. Debido a las propiedades de la suma, el orden en el que sumemos no importa a la solución, pero, en este acertijo, sí al tiempo total. Llegábamos a la conclusión de que la forma más rápida era hacer la suma ((1+2)+3)+4 que necesitaba 19 segundos.

Os preguntábamos varias cosas. La primera era cuál es el mínimo tiempo necesario para sumar 9, 6, 3 y 1.

Antes de desvelar la solución, meditemos un poco. Para sumar los números 1, 2, 3 y 4 vimos que era más eficiente empezar sumando primero los números más pequeños. La alternativa de la suma 1+(2+(3+4)) era mucho peor, porque sumamos primero los números grandes, que se van a “quedar dentro” de todas las sumas posteriores, por lo que sus costes van a estar presentes en todas ellas. Al fin y al cabo, cuando, en el primer caso, hacemos la segunda suma (3+3) en el primer 3 están el 1 y el 2 iniciales, que vuelven a contar para el coste total. Si en lugar de tener el 1 y el 2 tenemos al principio el 3 y el 4, sus costes van a estar contínuamente en las posteriores sumas y, al ser más altos, consumiremos más tiempo.

Esto demuestra que es mejor sumar los números más pequeños primero, algo que parece bastante fácil de ver. ¡Todos los que pusísteis vuestra solución acertásteis en este asunto! Por tanto, para sumar 9, 6, 3 y 1 es mejor ordenarlos de menor a mayor, y sumarlos en ese orden. Es decir ((1+3)+6)+9. El coste de cada suma es:

  • 1 + 3 = 4
  • 4 + 6 = 10
  • 10 + 9 = 19

Y por tanto el coste total es 4+10+19=33

El segundo caso que os poníamos eran los números 4, 5, 6 y 7. Si lo hacemos igual, sumando de menor a mayor, el resultado que nos da es:

  • 4 + 5 = 9
  • 9 + 6 = 15
  • 15 + 7 = 22

que tiene un coste total de 9+15+22=46.

Esta fue la respuesta de Borja y Joti y, suponemos, también el resultado de la ejecución del código de Ángel. Pero ¡aquí hay una trampa! Con nuestros acertijos ¡casi siempre hay que pensar un poco más! 🙂 Si en lugar de hacer la suma en el orden ((4+5)+6)+7 la hacemos (4+5)+(6+7) nos ahorramos tiempo:

  • 4 + 5 = 9
  • 6 + 7 = 13
  • 9 + 13 = 22

que tiene un coste total de 44 segundos, tal y como acertó Gualterio 🙂

¿Qué ha pasado aquí? ¿En qué se diferencia la suma 1+3+6+9 de 4+5+6+7?

Hemos llegado a la conclusión de que para ahorrarnos tiempo hay que sumar los números más pequeños antes. Por eso ordenamos los números de partida de menor a mayor. Lo que no estamos haciendo bien es volver a ordenar tras cada suma. Cuando teníamos 1, 3, 6 y 9, sumábamos los dos primeros números, y nos quedaban por tanto tres números a sumar, 4(=1+3), 6 y 9. Sumábamos 4 y 6 (=10) y luego 10 y 9.

Sin embargo, con el segundo caso (4, 5, 6 y 7), al hacer la primera suma nos quedan para sumar los números 9 (=4+5), 6 y 7, que no están ordenados de menor a mayor. Sumar 9+6 es un error, porque vamos a gastar el precio de sumar 9 dos veces (en las dos sumas siguientes). Es mejor primero sumar 6+7, que son más pequeños, y luego sumar el 9 al resultado.

Dicho todo esto, no te debería resultar difícil sacar que para sumar 2, 5, 7, 9, 20 y 40 (la última pregunta que os hacíamos) el tiempo mínimo necesario es de 170 segundos.

Y, como siempre, si has llegado hasta aquí y te divierte programar, puedes probar tu solución aquí.

¡Hasta el próximo acertijo!

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: