Skip to content

Caballeros y escuderos: acertijo 9

Jesús Arroyo Torrens edited this page May 29, 2017 · 3 revisions

Enunciado

En la isla de los caballeros y los escuderos se encuentran tres habitantes: A, B y C. A dice «Todos nosotros somos escuderos». B continúa diciendo «Uno de nosotros, y sólo uno es un caballero». ¿Qué son A, B, C?


Descripción formal

En la isla de los caballeros y los escuderos se encuentran tres habitantes: A, B y C.

Tenemos tres parámetros de entrada: A, B y C.


A dice «Todos nosotros somos escuderos».

A dice una única frase P (+info):

A ↔ P

La frase P se puede representar de dos maneras:

  • «Todos nosotros somos escuderos»: ¬A ∧ ¬B ∧ ¬C
  • «No hay ningún caballero»: ¬(A ∨ B ∨ C)

De nuevo aparece una de las Leyes de De Morgan (+info): por lo que la ecuación se puede representar de la siguiente forma:

A: P = ¬A ∧ ¬B ∧ ¬C = ¬(A ∨ B ∨ C)


B continúa diciendo «Uno de nosotros, y sólo uno es un caballero».

B dice una única frase Q (+info):

B ↔ Q

En esta frase Q, B asegura que sólo hay un caballero entre ellos. Es decir, el caballero puede ser o A o B o C:

B: Q = (A ∧ ¬B ∧ ¬C) ∨ (¬A ∧ B ∧ ¬C) ∨ (¬A ∧ ¬B ∧ C)


Deben ser coherentes ambas sentencias:

A ↔ P ∧ B ↔ Q


¿Qué son A, B, C?

Circuito digital

Entradas y salidas

Añadimos las entradas A, B y C (conectadas a LED0, LED1 y LED2, respectivamente) y una señal de salida S (conectada al LED7) que se activará cuando el circuito encuentre una solución.

A ↔ P
B ↔ Q

Como tenemos dos operaciones bicondicionales utilizaremos dos puertas XNOR (+info).

A ↔ P ∧ B ↔ Q

Esta ecuación se representa mediante una puerta AND (+info).

A: P = ¬A ∧ ¬B ∧ ¬C = ¬(A ∨ B ∨ C)

La frase P se puede representar de dos formas. Vamos a utilizar la más simplificada empleando una puerta NOR (+info) de 3 bit.

B: Q = (A ∧ ¬B ∧ ¬C) ∨ (¬A ∧ B ∧ ¬C) ∨ (¬A ∧ ¬B ∧ C)

La sentencia Q se representa con un bloque ONE 1 (+info).

Descargar circuito en Icestudio

Resolución en FPGA

Para resolver el circuito añadimos un bloque que comprueba todas las posibilidades y encuentra la solución o soluciones correctas (+info). Sintetizamos este circuito en la FPGA.

Descargar circuito de pruebas en Icestudio

Solución

Al sintetizar y descargar el circuito aparece una única solución (0, 1, 0).

(0, 1, 0)

Tenemos que (A, B, C) = (0, 1, 0), luego A es un escudero, B es un caballero y C es otro escudero.

Conclusiones

  • Una puerta NOR sólo se activa si todas sus entradas valen 0
  • Una puerta NOR de 3 bit tiene el mismo comportamiento que una NOR de 2 bit

Referencias

  • Raymond Smuyllan, ¿Cómo se llama este libro? Capítulo 3: Caballeros y Escuderos [31] (1989) Ediciones Cátedra, S.A. [1]