香农展开

来自testwiki
跳转到导航 跳转到搜索

Template:NoteTA 香农展开Template:Lang-en),或称香农分解Template:Lang)是对布尔函数的一种变换方式。它可以将任意布尔函数表达为其中任何一个变量乘以一个子函数,加上这个变量的反变量乘以另一个子函数。

f(X1,X2,,Xn)=X1f(1,X2,,Xn)+X1f(0,X2,,Xn)

例如:

f(x,y,z)=yz+xyz+xyz

可以抽取其中的变量 x 及其反变量 xx 取反),而得到

f(x,y,z)=xf(1,y,z)+xf(0,y,z)
f(x,y,z)=x(yz+(1)yz+(1)yz)+x(yz+(0)yz+(0)yz)
f(x,y,z)=x(yz+(1)yz+(0)yz)+x(yz+(0)yz+(1)yz)
f(x,y,z)=x(yz+yz)+x(yz+yz)

对逻辑函数使用香农展开,就可以使用抽取的变量作为一个选择信号,然后用数据选择器来实现该函数。

参考文献

外部链接