¡Enhorabuena a los que habéis sacado conclusiones! En efecto Alriga es un problema muy bonito, y al principio parece antiintuitivo pensar que puede solucionarse, sobre todo si buscas una solución como la del rey. Dejo aquí dos soluciones similares a las que ya se han sacado que he intentado formalizer un poco
Ocultar contenido
El objetivo es etiquetar los barriles de forma que la etiqueta deje claro los esclavos que beben y los que no, y que luego en función de los muertos se pueda determinar unívocamente el barril envenenado. Dos posibilidades:
1) Sea el conjunto de esclavos. Queremos etiquetar los barriles de forma que cada uno lo pruebe una combinación distinta de esclavos. El número de subconjuntos de es (en general, el número de subconjuntos de un conjunto finito , entre los que se incluye el vacío y el total, es ). Por tanto si etiquetas todos los barriles con 1000 de los 1024 subconjuntos de , cada barril lo probarán los esclavos que pertenezcan al subconjunto que marca cada etiqueta y el barril envenenado sera aquel que tenga por etiqueta el subconjunto cuyos elementos son los esclavos muertos.
2) Otra forma de plantearlo es la binaria. El día 30 me encontraré con una serie de esclavos vivos y muertos. Si llamamos 0 a los vivos y 1 a los muertos podemos simplificar el problema a obtener una secuencia de 0s y 1s de longitude 10. Es también sencillo observar que el número de secuencias de longitude 10 que alteren 0s y 1s es , o dicho de otro modo, los números binarios del al son de 10 cifras o menos. Si etiquetamos los barriles con los números binarios (añadiendo 0s a la izquierda hasta completer 10 cifras) desde el 0 hasta el 999, cada barril tendrá asociada una secuencia de longitud 10 de 0s y 1s, donde 0 indica que el esclavo en esa posición no bebe y 1 que sí. Al final según la secuencia de vivos y muertos que obtengamos podremos determinar el barril.
1) Sea el conjunto de esclavos. Queremos etiquetar los barriles de forma que cada uno lo pruebe una combinación distinta de esclavos. El número de subconjuntos de es (en general, el número de subconjuntos de un conjunto finito , entre los que se incluye el vacío y el total, es ). Por tanto si etiquetas todos los barriles con 1000 de los 1024 subconjuntos de , cada barril lo probarán los esclavos que pertenezcan al subconjunto que marca cada etiqueta y el barril envenenado sera aquel que tenga por etiqueta el subconjunto cuyos elementos son los esclavos muertos.
2) Otra forma de plantearlo es la binaria. El día 30 me encontraré con una serie de esclavos vivos y muertos. Si llamamos 0 a los vivos y 1 a los muertos podemos simplificar el problema a obtener una secuencia de 0s y 1s de longitude 10. Es también sencillo observar que el número de secuencias de longitude 10 que alteren 0s y 1s es , o dicho de otro modo, los números binarios del al son de 10 cifras o menos. Si etiquetamos los barriles con los números binarios (añadiendo 0s a la izquierda hasta completer 10 cifras) desde el 0 hasta el 999, cada barril tendrá asociada una secuencia de longitud 10 de 0s y 1s, donde 0 indica que el esclavo en esa posición no bebe y 1 que sí. Al final según la secuencia de vivos y muertos que obtengamos podremos determinar el barril.
Dejar un comentario: