- IP属地
- 英国
- 2018/12/23
- 69
- 64
- · 发布于未知
记号
&:与运算符~:或运算符
泰拉瑞亚里的异或门与异或逻辑不同。因为异或门不满足结合律,所以异或门记作函数 ^() 而不是运算符。
泰拉瑞亚中的异或逻辑可以通过将两根线接到同一个逻辑灯上实现,a 与 b 接到同一个逻辑灯上记为 ab。这种免费的异或逻辑大大增加了单个逻辑门的复杂度。
在未经特殊说明的情况下,组合逻辑的输入为a_1,...,a_n,输出为F。
真值表定义
一个n输入的真值表大小是(n+1)*2^n。有两种方法可以压缩其大小。其一是固定左边n列输入参数的顺序,只保留最后一列向量;其二是只保留使输出为1的输入参数。我们采取第二种记法,例如有三个输入的异或门 ^(a,b,c),当且仅当 (a,b,c)=(1,0,0),(0,1,0),(0,0,1) 这三种情况时异或门的输出是1,所以真值表记为显然可以随意交换真值表的两行,不过这么做没什么意义。
单个逻辑门的真值表
泰拉瑞亚中只有两种不同的组合逻辑门:与门和异或门。单个与门可以实现的逻辑表达式为 s_1&...&s_r,其中 s_i 是由 {~,a_1,...,a_n} 生成的串。这个与门上的逻辑灯数量比表达式中的“&”符号数量多1。
举例来说,对于三个输入a,b,c,a&b&c,a&~b&~c,a&b,ab&c 和 abc 都可以用单个与门实现:
单个异或门可以实现的逻辑表达式为 ^(s_1,s_2,...,s_r),其中 s_i 如上所述。这里我们举两个例子:^(a,b,c) 和 ^(ab,b,c)
因为逻辑表达式的长度任意,每项的串也有很多可能,单个逻辑门就可以达到非常高的复杂度,甚至于我们平常遇到的大多数情况都可以用单个逻辑门解决。然而知道了这些,并不能帮助我们从一个真值表看出来这个真值表代表的逻辑表达式。例如,给定了一个逻辑表达式 ^(abc,bc,c),写出它的真值表是很容易的,但是如果给出它的真值表,如何知道它代表的是 ^(abc,bc,c) 呢?