Turing Complete Unofficial

XOR

前提レベル

このレベルを前提とするレベル

概要

プログラムを使って入力値のXORを計算する問題です。

攻略

XOR演算はNAND, NOR演算などの組み合わせによって構成することができます。

解答

開く

例としてXORを4つのNANDで構成する方法を用います。 入力値をA, Bとしてコメントを記述します。

# A, B$r4, $r5
in_r4
in_r5

# $r1 = A NAND B
r4_r1
r5_r2
nand
r3_r1

# $r4 = $r1 NAND $r4
#     = (A NAND B) NAND A
r4_r2
nand
r3_r4

# $r5 = $r1 NAND $r5
#     = (A NAND B) NAND B
r5_r2
nand

# out = $r1 NAND $r2
#     = ((A NAND B) NAND A) NAND ((A NAND B) NAND B)
r3_r1
r4_r2
nand

r3_out