Pequeño ejercicio matemático

Un día de estos, entro a una tienda y pido estampillas… por un valor total de 770 yenes. Ante este fastidioso pedido, la chica cajera duda y piensa, y empieza por sacar dos estampillas de 270 yenes y dice: “Serían muchas estampillas. ¿Estará bien?”.

Claro que sí, está bien. Y espero. La chica calcula y duda, duda y calcula, y tras pensar un largo rato, saca cuatro estampillas de 50 yenes y tres de 10. Y me pregunta: ¿Está bien así?

No tengo la menor intención de fastidiar más a la chica ni tampoco quiero ser un cliente pesado, pero se me escapa un “Este…, ¿sería usted tan amable como para cambiarme estas tres estampillas de 10 y esta de 50, por una de 80?” Y es que en Japón, las estampillas de 80 yenes son de las que más se usan, por lo que, al ver las tres estampillas de 10, es imposible no darse cuenta de la posibilidad de ese cambio. Pobre chica ante un pesado cliente pero, bueno…

Si yo fuera el vendedor, mi algoritmo para encontrar la combinación de estampillas sería así:

  1. Sacar estampillas de la denominación más alta disponible sin superar el valor total deseado. Entregar al cliente [(el valor total deseado) dividido por (la denominación de las estampillas)] unidades de estas estampillas.
  2. Si todavía no se ha alcanzado el valor total deseado, entonces el monto restante es el nuevo “valor total deseado”, y volver a (1).
  3. Repetir (1) y (2) hasta conseguir el valor total deseado…

Y solo eso. La operación es bien simple y fácil. No se necesita dudar/pensar en nada, ni mucho menos recurrir a las estampillas de 50 sin antes haber usado las de 80…. o ¿sí?

Bueno, en realidad, este algoritmo funciona en la mayoría de los casos, pero no siempre… porque las denominaciones de las estampillas son un poco irregulares y parecen no haber sido fijadas muy matemáticamente. Y no es tan difícil imaginar una situación inconveniente…. A ver, podríamos suponer que, en un país imaginario, existen estampillas de 80, 60, 50, 10 pesos. Sí aquí viene un cliente a pedirnos estampillas para 110 pesos… En tal caso, el algoritmo arriba mencionado daría como resultado:

  • una estampillas de 80 pesos y tres de 10 (Son cuatro estampillas en total)

Mientras que si actuamos por intuición, no dudaríamos en agarrar

  • una estampilla de 60 pesos y otra de 50 (Dos estampillas en total).

Así es que de ahí, de esta curiosidad, ¿cuál sería el algoritmo para encontrar la combinación ideal de estampillas (para conseguir el valor deseado, utilizando el mínimo número de estampillas)?, es que en estos días me he puesto a hacer este pequeñísimo ejercicio de programación de tipo “Problema de la Mochila”. Bueno, si solo se trata de la combinación de estampillas, no es nada complicado y de hecho no faltan programas ya disponibles (como este) en todos lados, pero igual puede ser un interesante ejercicio para principiantes de programación. Ya tengo una versión mía, bien rudimentaria pero que sí calcula. Por el momento es solo para mi pasatiempo, pero sería interesante saber arreglar su interfaz de usuario y convertirlo en un programa web, o de repente mi primera aplicación para el famoso iPhone, etc. (aunque debo aclarar que yo mismo no poseo ese codiciado aparato de la manzana mordida).

Anuncios

2 comentarios

Archivado bajo general, naderías

2 Respuestas a “Pequeño ejercicio matemático

  1. A mí siempre me preguntan qué estampillas quiero, es decir, si quiero de 80 o de 50 y yo también preguntaría lo mismo, pero claro, estoy hablando de la oficina de correos 😉
    Un saludo.

  2. 759

    Hola Nora,
    Me parece una buena opción el que el cliente especifique bien su pedido. Sería bueno que los jefes de las tiendas instruyan así a sus empleados.
    Saludos.

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