Problema del mono y los cocos

De Wikipedia, la enciclopedia libre

El problema del mono y los cocos es un problema de álgebra recreativa en cuya resolución se emplean típicamente ecuaciones diofánticas.

Enunciado[editar]

El enunciado de este problema es el siguiente: Cinco hombres y un mono naufragan en una isla desierta. Los hombres pasan todo el primer día recogiendo cocos. Por la noche, uno de ellos despierta y, desconfiado, decide separar su parte. Divide los cocos en cinco montones, toma su parte y, como sobra un coco, se lo da al mono. Poco después, un segundo náufrago se despierta y hace lo mismo. Al dividir los cocos en cinco montones, vuelve a sobrar un coco y también se lo da al mono. Uno tras otro, el tercero, cuarto y quinto náufragos hacen lo mismo. Al día siguiente por la mañana, dividen los cocos en cinco montones sin que sobre ninguno. ¿Cuántos se habían recolectado inicialmente?

Una variación de este planteamiento es que en el reparto final sobra un coco en lugar de no sobrar ninguno.

Planteamiento[editar]

El planteamiento algebraico del problema es de relativa sencillez. Representando por Xi {i = 1...5} al número de cocos que toma cada uno de los náufragos y X6 el total de las existencias, se origina el siguiente sistema de ecuaciones:

Con las restricciones adicionales:

Para todo Xi Entero; para todo Xi > 0

Obligando a que el número de cocos ha de estar expresado por un número natural.

El sistema anterior constituye un claro ejemplo de ecuaciones diofánticas para las que no se conoce un algoritmo de resolución sistemática. No obstante, es de relativa sencillez mediante procedimientos informáticos usuales.

Tratamiento informático[editar]

Esta clase de problemas se prestan a una representación matricial muy compacta, que facilita la resolución posterior.

FIGURA I

La Figura I es una imagen de la "Hoja de Cálculo" utilizada. La parte superior corresponde al planteamiento del problema para su tratamiento matemático. En el inferior se ha copiado la pantalla propia del "Solver", donde puede apreciarse la estructura típica de esta clase de problemas, formada por:

  • Función objetivo.
  • Variables.
  • Restricciones.

El manejo del programa es sencillo, variando en algunos detalles según fabricantes. En el aquí representado, una segunda pantalla permite refinar el tratamiento matemático más adecuado a cada situación

Tratamiento con Programación[editar]

De la misma manera se podría encontrar una solución usando un poco de programación. Con una variable que nos determine cuantos cocos recolectaron inicialmente y otra variable indicando cuantos cocos van quedando después de que cada hombre toma su parte y le da una al mono. Ejecutamos esas operaciones hasta que la cantidad de cocos que quede al final pueda dividirse exactamente entre 5 e imprimimos el resultado.

  • Programa:
 1  let n0 = 0, n;
 2  while (n % 5 != 0) {
 3      n0++;
 4      n = (4/5)*(n0-1);
 5      n = (4/5)*(n-1);
 6      n = (4/5)*(n-1);
 7      n = (4/5)*(n-1);
 8      n = (4/5)*(n-1);
 9  }
10  console.log(n0);
  • Consola:
 1  3121

Resultado[editar]

Por último, el resultado obtenido ha sido:

la expresión de la solución general del número de cocos recogidos es:

  X6=9375*m+3121   donde m es un número entero mayor o igual a 0.

Referencias[editar]

Enlaces externos[editar]