6 votos

Rompecabezas de lógica: el hombre rico y los 1000 barriles de vino

Hace poco me encontré con un interesante rompecabezas lógico durante un desafío en una competición de programación. Ninguna de las personas del equipo de dos personas que completaba ese desafío pudo averiguar una respuesta que funcionara en todos los escenarios, y tampoco pudieron hacerlo las demás personas del equipo de la escuela.

El problema se describió de la siguiente manera:

Eres un hombre rico y sin escrúpulos que posee diez esclavos. Dentro de seis horas va a celebrar una gran cena en la que pretende servir mil barriles de vino.

Desgraciadamente, exactamente uno de los barriles está envenenado. Sabes que el veneno hace efecto entre 30 minutos y cinco horas después de la ingestión, variando de persona a persona.

Decides utilizar a tus esclavos para averiguar qué barril contiene el veneno antes de la cena.

Trabajando bajo los supuestos de que no se puede cancelar la cena, y de que no hay límite en la cantidad de vino que puede beber un esclavo, proponga una forma de averiguar qué barril está envenenado antes de que comience la parte de la cena.

La solución más obvia era utilizar un algoritmo de "divide y vencerás": asignar 100 barriles a cada uno de los 10 esclavos, luego asignar los 9 esclavos sanos/vivos restantes a los 100 barriles que incapacitaron a un esclavo, y repetir.

Mientras que este enfoque funciona asumiendo que el veneno actúa en 30 minutos (o en un periodo de tiempo corto), falla asumiendo cualquier cosa cercana al peor caso de tiempo de 5 horas.

¿Existe algún método que permita determinar qué barrica contiene el vino envenenado en las 6 horas previas a la cena?

3voto

user Puntos 2963

$10$ los esclavos pueden hacerlo en $5$ horas. La clave es que $2^{10} = 1024 > 1000$ .

Para una solución, vea una pista:

Trabajo en binario.

Para más detalles,

Numerar las barricas y etiquetar a los esclavos según los lugares en binario; los esclavos muestrean una barrica según si hay $0$ o $1$ en su posición. La situación de los esclavos después de $5$ horas determina un número en binario en consecuencia, con $0$ y $1$ representando a los muertos y a los vivos, respectivamente. El barril con el número correspondiente está envenenado.

0voto

Archis Welankar Puntos 1730

Una forma muy poco interesante. (PIENSO) . hacer $10$ esclavos para beber $1000$ vasos resprectivamente haciendo diferentes secciones . que empiecen a beber . Suponiendo que tomen 1/2hr para este propósito. Ahora haga esto de nuevo intercambiando la sección de cada esclavo. $5$ tiempos. Ahora supongamos que 5 esclavos reaccionan a $30$ minutos y 5 en $5hrs$ y sabemos quién reacciona con qué tiempo . Pero mientras se bebe se anota la hora y el nombre de la persona en el barril o en el papel . El tiempo en el que una persona murio seria entonces conocido y como sabemos los tiempos de reaccion entonces comparando con el tiempo en el barril que bebio el vaso venenoso puede ser removido . Si los periodos de tiempo son diferentes y si puedes hacer suposiciones entonces asume que de alguna manera sabes en que tiempo reaccionara una persona. Eso lo haría un poco más fácil.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X