Leí el otro rosca sobre el algoritmo de Knuth y la mente maestra, pero todavía no entiendo muy bien cómo se implementaría. Estoy confundido por el lenguaje o mi cerebro está roto (o ambos).
Entiendo que se parte de una lista S de todas las permutaciones posibles en función de los parámetros del juego concreto, por ejemplo una lista de 1296 combinaciones posibles de 4 dígitos donde cada dígito puede ser un número del 1 al 6 (incluyendo las repeticiones).
Se crea un número de 4 dígitos código secreto .
Usted juega un adivinar (de la lista S) contra el código secreto y recibir un respuesta en términos de "clavijas" blancas y negras, donde cada clavija negra significa la adivinar tiene el dígito correcto en el lugar correcto, y cada clavija blanca significa el adivinar tiene el dígito correcto en el lugar equivocado.
Según Knuth, siempre hay que utilizar 1122 como primer adivinar, del que se obtiene un respuesta en términos de clavijas blancas y negras.
A continuación, con el fin de reducir el número de posibles conjeturas para el siguiente turno y finalmente encontrar el código correcto, si la respuesta no es 4 clavijas negras (lo que significa que el código ha sido adivinado correctamente y el juego ha terminado), vamos a eliminar de S cualquier elemento (conjetura, código, como quieras llamarlo) que no daría la misma respuesta si it (el Supongo/código/elemento en S ) fueron los código .
¿Qué significa eso? ¿Alguien más está confundido por esa redacción?
No entiendo qué comparación se hace aquí. Para mí, esto significa que si la respuesta a la primera conjetura de 1122 es una negra, una blanca, eliminaríamos de S todas las conjeturas potenciales que, cuando se juega contra el código secreto, no devolvería la misma respuesta de un negro y un blanco. Eso nos dejaría, por supuesto, con una lista de posibilidades que no contendría la respuesta correcta, porque sería simplemente una lista de elementos que obtendrían todos una respuesta de un negro, un blanco.
Así que veo que obviamente eso no puede ser lo que significa, por lo que la alternativa es decir "OK debe significar que debes eliminar de S todas las conjeturas potenciales que también devuelven la respuesta de un negro, un blanco) y partir de ahí". Eso tiene más sentido que mi interpretación inicial, pero sigue sin parecerme correcto.
¿Puede alguien ayudar a explicar esto con múltiples ejemplos? No puedo entender qué comparación se hace y qué dos cosas se comparan realmente para eliminar elementos de S.
0 votos
No se crea un código secreto de 4 dígitos. Lo hace tu oponente. Tal vez esta sea la fuente de su confusión.
0 votos
Gracias TonyK pero no, ese no es el problema. Entiendo cómo funciona el juego, sólo estoy tratando de entender la lógica del algoritmo de Knuth. Yo estaba colgado en el lenguaje utilizado para describir la reducción de la lista de S que yo diría que es ambigua (al menos como existe en el artículo de Wikipedia).
0 votos
En este enlace hay una explicación exhaustiva de todas las estrategias del mastermind: serkangur.freeservers.com