Caballeros y escuderos: acertijo 1
En la isla de los caballeros y los escuderos se encuentran dos habitantes: A y B.
Tenemos dos parámetros de entrada A y B.
Supóngase que A dice, «O yo soy un escudero o B es un caballero».
A dice una única frase P (+info):
A ↔ P
Definimos la frase P como «O yo soy un escudero o B es un caballero». La frase será verdadera (1) cuando una de las dos condiciones, o las dos sean verdadera. Por tanto P será 1 cuando A sea un escudero o B sea un caballero:
A: P = ¬A ∨ B
¿Qué son A y B?
Entradas y salidas
Añadimos las entradas A y B (conectadas a LED0 y LED1, respectivamente) y una señal de salida S (conectada a LED7) que se activará cuando el circuito encuentre una solución.
A ↔ P
La operación bicondicional se implementa mediante una puerta XNOR (+info).
A: P = ¬A ∨ B
Vamos a representar la ecuación de disyunción entre ¬A,B con una puerta OR (+info).
También incluimos una puerta NOT (+info) para definir la subecuación ¬A.
Descargar circuito final en Icestudio
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
Al sintetizar y descargar el circuito aparece una única solución:
(1, 1) |
---|
Por lo tanto tenemos que (A, B) = (1, 1), es decir, A y B son caballeros.
- Una puerta OR permite determinar si al menos una señal vale 1
- Raymond Smuyllan, ¿Cómo se llama este libro? Capítulo 3: Caballeros y Escuderos [29] (1989) Ediciones Cátedra, S.A. [1]