16 个布尔函数:两个比特的十六种命运

两个比特 (a, b) 能造出多少种不同的真值表?答案是 2^(2²) = 16 种。本脚本枚举全部 16 个二元布尔函数,为每个真值表找到常见名字(AND/OR/XOR/NAND/NOR/蕴含/投影/常值……),并验证它们两两不同。

实测输出:

真值表    名字
0000      常假 ZERO(0)
0001      AND(与)
0010      A AND NOT B(阻抑)
0011      A(投影)
0100      NOT A AND B(阻抑)
0101      B(投影)
0110      XOR(异或)
0111      OR(或)
1000      NOR(或非)
1001      XNOR(同或)
1010      NOT B(非 B)
1011      IMPLY B→A(B 蕴含 A)
1100      NOT A(非 A)
1101      IMPLY A→B(A 蕴含 B)
1110      NAND(与非)
1111      常真 ONE(1)
  • 16 个真值表两两不同 ✅
  • 这就是为什么十六进制只需要 16 个符号 0-F,16 位二进制能表示 0~65535
  • 顺带一提:蕴含的两行最容易搞反(¬a∨b 是 A→B,¬b∨a 才是 B→A),脚本第一版就把标签写反了,已被真值表抓住修正

运行

python3 content/code/boolean16.py

📥 下载源码: boolean16.py