Skip to content

Caballeros y escuderos: acertijo 1

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

Enunciado

En la isla de los caballeros y los escuderos se encuentran dos habitantes: A y B. Supóngase que A dice, «O yo soy un escudero o B es un caballero». ¿Qué son A y B?


Descripción formal

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?

Circuito digital

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

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:

(1, 1)

Por lo tanto tenemos que (A, B) = (1, 1), es decir, A y B son caballeros.

Conclusiones

  • Una puerta OR permite determinar si al menos una señal vale 1

Referencias

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