计组中的组合数学

计组中的组合数学

一、反演定律

​ 如果将一个式子的互换(注意不改变计算顺序,也就是转换成的时候需要加括号),1和0转换,文字相互转换,那么就可以得到这个公式的反,举个例子
F = A ˉ B ˉ + C D {F} = \bar A \bar B + CD F=AˉBˉ+CD
​ 那么他的反演式,就是
F ˉ = ( A + B ) ( C ˉ + D ˉ ) \bar{F} = (A + B)(\bar C + \bar D) Fˉ=(A+B)(Cˉ+Dˉ)
​ 我们注意到反演直接就给等号左侧取反了,这就是对的,也就是说,原来能够使 F F F 得 1 的输入向量,现在能使 F ˉ \bar F Fˉ 得 0 ,,原来能够使 F F F 得 0 的输入向量,现在能使 F ˉ \bar F Fˉ 得 1。可以说是一个很神奇的公式了,神奇到我之前都没有发现他的威力。

​ 那么为什么会有这种结果呢?可以粗浅的理解一下,如果把 F F F 展开成一个极小项范式,这个范式按照上面的操作来一遍,就可以得到 F ˉ \bar F Fˉ极大项范式,这个可以从真值表中直接得出,反之亦然。对于没有化成标准范式的式子,其实都是可以推广的。


二、对偶定理

​ 这个其实就是不交换原变量和反变量,其他跟反演定律一致,举个例子
F = A ˉ B ˉ + C D {F} = \bar A \bar B + CD F=AˉBˉ+CD
​ 他的对偶式就是
F ∗ = ( A ˉ + B ˉ ) ( C + D ) F^* = (\bar A +\bar B)( C + D) F=(Aˉ+Bˉ)(C+D)
​ 但是 F ∗ F^* F F F F 之间就没有这么明显的关系了,这是因为这个式子探究的不是函数间的关系,而是恒等式(等号两侧是平等的)之间的关系,正确的用法是
F = A ( B + C ) = A B + A C F= A(B+C)=AB + AC F=A(B+C)=AB+AC
​ 然后由对偶定理,我们可以得到另一组恒等式,有
F ∗ = A + B C = ( A + B ) ( A + C ) F^* = A + BC = (A + B)(A + C) F=A+BC=(A+B)(A+C)


三、一个重要公式

A B + A ˉ C + B C D E F . . . = A B + A ˉ C AB + \bar AC + BCDEF... = AB + \bar AC AB+AˉC+BCDEF...=AB+AˉC

​ 如果有两项中的因子互为反变量 A , A ˉ A,\bar A A,Aˉ, 而且这两项中的其他因子 B , C B,C B,C 在后面中的某一项中同时出现 $BCDEF… $​,那么这一项可以消去。​

​ 证明方式如下:
A B + A ˉ C + B C D E F . . . = A B + A ˉ C + ( A + A ˉ ) B C D E F . . . = A B + A B C D E F . . . + A ˉ C + A ˉ B C D E F . . . = A B + A ˉ C AB + \bar AC + BCDEF... = AB + \bar AC + (A + \bar A)BCDEF... = AB + ABCDEF... + \bar AC + \bar ABCDEF...=AB + \bar AC AB+AˉC+BCDEF...=AB+AˉC+(A+Aˉ)BCDEF...=AB+ABCDEF...+AˉC+AˉBCDEF...=AB+AˉC


四、公式化简和卡诺图

​ 公式化简的最基本的方法就是合并补项联立,其中以补项联立最为反人类思维方式。但是这两种都可以很好用卡诺图解决。

​ 对于SR寄存器的状态转移公式,有如下式
Q n + 1 = S ˉ R ˉ Q n + S R ˉ Q ˉ n + S R ˉ Q n Q^{n+1} = \bar S\bar RQ^n + S\bar R\bar Q^n + S \bar R Q^n Qn+1=SˉRˉQn+SRˉQˉn+SRˉQn

S ⋅ R = 0 S\cdot R = 0 SR=0

​ 可列出卡诺图如下:

00 01 11 10
0 0 0 x 1
1 1 0 x 1

​ 可以看出根据卡诺图很容易就可以写出表达式
Q n + 1 = S + R ˉ Q n Q^{n+1} = S + \bar R Q^n Qn+1=S+RˉQn
​ 其中x是因为对于S,R均为1的情况,不会出现,所以是x。

​ 那么我们在看一遍正经的化简过程:
Q n + 1 = S ˉ R ˉ Q n + S R ˉ Q ˉ n + S R ˉ Q n + S R ( Q n + Q ˉ n ) + S R ˉ Q n = S + R ˉ Q n Q^{n+1} = \bar S\bar RQ^n + S\bar R\bar Q^n + S \bar R Q^n + SR(Q^n + \bar Q^n) + S\bar RQ^n=S +\bar R Q^n Qn+1=SˉRˉQn+SRˉQˉn+SRˉQn+SR(Qn+Qˉn)+SRˉQn=S+RˉQn
​ 可以看到,增添的三项其中两项对应的是x,另一项是画圆圈的时候重叠的项,所以可以看出,补项联立被处理的很好。

你可能感兴趣的:(算法)