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