Caballeros y escuderos: acertijo 2
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.
A dice, «O yo soy un escudero o en caso contrario dos más dos es igual a cinco».
A dice una única frase P (+info):
A ↔ P
Definimos la frase P como «O yo soy un escudero o en caso contrario dos más dos es igual a cinco». La frase será verdadera (1) cuando una de las dos condiciones sea verdadera. Claramente la segunda condición "dos más dos es igual a cinco" es falsa, un 0 lógico. Por lo tanto la ecuación es:
A: P = ¬A ∨ 0
¿Qué concluirías?
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 ∨ 0
Vamos a representar la ecuación de disyunción entre ¬A,0 con una puerta OR (+info).
Incluimos una puerta NOT (+info) para definir la subecuación ¬A.
Finalmente añadimos un 0 lógico para representar la segunda codición de la frase.
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 contador llega al final con la señal S apagada.
No existen soluciones |
---|
El enunciado es imposible ya que contiene una contradicción (A ↔ ¬A). Ningún habitante puede decir «Yo soy un escudero». Esto significa que el enunciado está incorrectamente planteado.
- Un 0 lógico representa una señal no activa
- Una contradicción (⊥) es una incompatibilidad entre dos o más proposiciones
- Raymond Smuyllan, ¿Cómo se llama este libro? Capítulo 3: Caballeros y Escuderos [30] (1989) Ediciones Cátedra, S.A. [1]