Saltar al contenido

Ejercicios de diseño solo con NAND o solo con NOR

Diez funciones que hay que reconstruir con un único tipo de compuerta, NAND o NOR, según diga el enunciado. Escribe la fórmula en la forma de función del motor, NAND(…, …) o NOR(…, …) con exactamente dos operandos por compuerta, y cuenta las compuertas. Cada respuesta se verifica equivalente a la función; la solución da un diseño a mano y su recuento de compuertas.

Tres identidades hacen todo el trabajo con NAND: NOT A es NAND(A, A); A AND B es NAND(NAND(A, B), NAND(A, B)), un NAND seguido de un inversor; A OR B es NAND(NAND(A, A), NAND(B, B)), por De Morgan. Las versiones con NOR son las duales: NOT A es NOR(A, A), A OR B es NOR(NOR(A, B), NOR(A, B)), y A AND B es NOR(NOR(A, A), NOR(B, B)). Construye de dentro hacia fuera y busca inversores que se cancelen por pares.

Los recuentos de compuertas de las soluciones corresponden al diseño mostrado, y un diseño más ingenioso puede usar menos: A XOR B lleva cuatro NAND cuando se reutiliza el NAND(A, B) compartido, pero cinco si se construye dos veces. La tabla de verdad bajo cada problema es la de la propia función; lo que hay que comprobar es la equivalencia de tu fórmula, y cualquier fórmula con la misma tabla pasa, sea cual sea su recuento.

1. Construye NOT A solo con compuertas NAND. NOT A
#Af
0FALSOVERDADERO
1VERDADEROFALSO

El motor no encontró ninguna ley que acorte esta expresión; ya es tan corta como sus leyes de reescritura permiten.

NOT A

Clasificación: contingente

NAND(A, A): un NAND con las dos entradas unidas es un inversor. Una compuerta.

2. Construye A AND B solo con compuertas NAND. A AND B
#ABf
0FALSOFALSOFALSO
1FALSOVERDADEROFALSO
2VERDADEROFALSOFALSO
3VERDADEROVERDADEROVERDADERO

El motor no encontró ninguna ley que acorte esta expresión; ya es tan corta como sus leyes de reescritura permiten.

A AND B

Clasificación: contingente

NAND(NAND(A, B), NAND(A, B)): el NAND de A y B seguido de un inversor hecho con un segundo NAND. Dos compuertas.

3. Construye A OR B solo con compuertas NAND. A OR B
#ABf
0FALSOFALSOFALSO
1FALSOVERDADEROVERDADERO
2VERDADEROFALSOVERDADERO
3VERDADEROVERDADEROVERDADERO

El motor no encontró ninguna ley que acorte esta expresión; ya es tan corta como sus leyes de reescritura permiten.

A OR B

Clasificación: contingente

Por De Morgan, A OR B es NOT (NOT A AND NOT B), es decir, un NAND de las dos entradas invertidas: NAND(NAND(A, A), NAND(B, B)). Tres compuertas.

4. Construye A XOR B solo con compuertas NAND. A XOR B
#ABf
0FALSOFALSOFALSO
1FALSOVERDADEROVERDADERO
2VERDADEROFALSOVERDADERO
3VERDADEROVERDADEROFALSO

El motor no encontró ninguna ley que acorte esta expresión; ya es tan corta como sus leyes de reescritura permiten.

A XOR B

Clasificación: contingente

Sea n = NAND(A, B), compartido por las dos ramas: NAND(A, n) es NOT A OR B y NAND(B, n) es A OR NOT B; su NAND niega el bicondicional, que es XOR. Cuatro compuertas: NAND(NAND(A, NAND(A, B)), NAND(B, NAND(A, B))).

5. Construye A AND B solo con compuertas NOR. A AND B
#ABf
0FALSOFALSOFALSO
1FALSOVERDADEROFALSO
2VERDADEROFALSOFALSO
3VERDADEROVERDADEROVERDADERO

El motor no encontró ninguna ley que acorte esta expresión; ya es tan corta como sus leyes de reescritura permiten.

A AND B

Clasificación: contingente

Por De Morgan, A AND B es NOT (NOT A OR NOT B), un NOR de las dos entradas invertidas: NOR(NOR(A, A), NOR(B, B)). Tres compuertas.

6. Construye A OR B solo con compuertas NOR. A OR B
#ABf
0FALSOFALSOFALSO
1FALSOVERDADEROVERDADERO
2VERDADEROFALSOVERDADERO
3VERDADEROVERDADEROVERDADERO

El motor no encontró ninguna ley que acorte esta expresión; ya es tan corta como sus leyes de reescritura permiten.

A OR B

Clasificación: contingente

Un NOR seguido de un inversor NOR: NOR(NOR(A, B), NOR(A, B)). Dos compuertas, el dual de la construcción de AND con NAND.

7. Construye A -> B solo con compuertas NAND. A -> B
#ABf
0FALSOFALSOVERDADERO
1FALSOVERDADEROVERDADERO
2VERDADEROFALSOFALSO
3VERDADEROVERDADEROVERDADERO

El motor no encontró ninguna ley que acorte esta expresión; ya es tan corta como sus leyes de reescritura permiten.

A -> B

Clasificación: contingente

A -> B es NOT A OR B, que es NOT (A AND NOT B), un NAND de A y de B invertida: NAND(A, NAND(B, B)). Dos compuertas.

8. Construye (A AND B) OR C solo con compuertas NAND. (A AND B) OR C
#ABCf
0FALSOFALSOFALSOFALSO
1FALSOFALSOVERDADEROVERDADERO
2FALSOVERDADEROFALSOFALSO
3FALSOVERDADEROVERDADEROVERDADERO
4VERDADEROFALSOFALSOFALSO
5VERDADEROFALSOVERDADEROVERDADERO
6VERDADEROVERDADEROFALSOVERDADERO
7VERDADEROVERDADEROVERDADEROVERDADERO

El motor no encontró ninguna ley que acorte esta expresión; ya es tan corta como sus leyes de reescritura permiten.

(A AND B) OR C

Clasificación: contingente

Una suma de productos se traduce en dos niveles de NAND: (A AND B) OR C es NOT (NOT (A AND B) AND NOT C), así que NAND(NAND(A, B), NAND(C, C)), donde el inversor de C es un NAND con las entradas unidas. Tres compuertas.

9. Construye el multiplexor (A AND B) OR (NOT A AND C) solo con compuertas NAND. (A AND B) OR (NOT A AND C)
#ABCf
0FALSOFALSOFALSOFALSO
1FALSOFALSOVERDADEROVERDADERO
2FALSOVERDADEROFALSOFALSO
3FALSOVERDADEROVERDADEROVERDADERO
4VERDADEROFALSOFALSOFALSO
5VERDADEROFALSOVERDADEROFALSO
6VERDADEROVERDADEROFALSOVERDADERO
7VERDADEROVERDADEROVERDADEROVERDADERO

El motor no encontró ninguna ley que acorte esta expresión; ya es tan corta como sus leyes de reescritura permiten.

(A AND B) OR (NOT A AND C)

Clasificación: contingente

Dos términos producto en un NAND de NAND: NAND(NAND(A, B), NAND(NAND(A, A), C)), donde NAND(A, A) es el inversor de la entrada de selección. Cuatro compuertas.

10. Construye A <-> B solo con compuertas NOR. A <-> B
#ABf
0FALSOFALSOVERDADERO
1FALSOVERDADEROFALSO
2VERDADEROFALSOFALSO
3VERDADEROVERDADEROVERDADERO

El motor no encontró ninguna ley que acorte esta expresión; ya es tan corta como sus leyes de reescritura permiten.

A <-> B

Clasificación: contingente

Sea n = NOR(A, B): NOR(A, n) es NOT A AND B y NOR(B, n) es A AND NOT B; su NOR niega el XOR, que es el bicondicional. Cuatro compuertas: NOR(NOR(A, NOR(A, B)), NOR(B, NOR(A, B))), el dual del diseño de XOR con NAND.

Preguntas

¿Por qué el motor acepta una fórmula con más compuertas que la mía?

Porque la comprobación trata de la función, no del coste: una respuesta pasa cuando es equivalente en todas las filas. El recuento de compuertas es una cualidad de diseño que juzgas a mano, y las soluciones dan un recuento para comparar, sin afirmar que no pueda mejorarse.

Relacionado

Leyes

Operadores y compuertas

Ejemplos resueltos

Comparar

Véase también

Ejercicios

Generado a partir del motor de Tangibool, semántica tangibool-semantics/1, motor 1.0.0, compilación . Cada tabla, mapa, simplificación y veredicto de estas páginas lo calculó el motor de Tangibool al compilar el sitio, y cada afirmación la volvió a comprobar el mismo verificador exacto que usa la app. Los límites se indican donde aplican. © 2026 Foreranger LTD.