当前位置: 首页 > news >正文

DM@命题公式@主范式的性质和应用@数理逻辑解决数字电路全加器问题

文章目录

    • abstract
    • 主合取范式与主析取范式间的关系👺
    • 主范式存在及唯一性定理
    • 主范式的性质👺
    • 给出一个满足给定真值表的命题公式
      • 半加器
      • 全加器
      • 半加器和全加器的联系
    • 主范式合并化简
      • 卡诺图法
      • 公式法
      • 最简范式

abstract

  • 命题公式@
    • 主范式的性质和应用
    • @数理逻辑解决数字电路全加器问题

主合取范式与主析取范式间的关系👺

  • 同一个 n n n元命题公式 A A A的主合取范式 A 1 A_1 A1与主析取范式 A 2 A_2 A2间的关系:
    • 构造整数集合 S = { 0 , ⋯ , 2 n − 1 } S=\{0,\cdots,2^{n}-1\} S={0,,2n1},以及主析取式的所有最小项编号构成的集合 m = ( i 1 , ⋯ , i t ) m=(i_1,\cdots,i_t) m=(i1,,it),其中 t t t是主取析范式包含的极小项数目
    • 作整数下标集合 M = S − m M=S-m M=Sm= { j 1 , ⋯ , j s } \{j_1,\cdots,j_{s}\} {j1,,js},其中 s = 2 n − t s=2^{n}-t s=2nt,则主合取范式就是 M j 1 ∧ M j 2 ⋯ M j s M_{j_1}\wedge{M_{j_2}}\cdots{M_{j_{s}}} Mj1Mj2Mjs
    • 总之, A 1 , A 2 A_1,A_2 A1,A2的下标相对于 S S S集合是互补的
  • 证明:参考主范式的性质一节(根据主析取范式直接得到主合取范式)

主范式存在及唯一性定理

  • 任何命题公式都存在与之等值主析取范式主合取范式
  • 存在性
    • 按照命题公式主范式化一节给出的方法可以将所有析取范式(合取范式)主规范化
    • 又因为任意命题都可以规范化为析取范式和合取范式
    • 所以存在性成立
  • 唯一性(以析取范式为例,用反证法证明)
    • 即证明任意公式的主析取范式都式一致的,又即任意两个析取范式包含的最小项一致(最小项编号序列一致)
    • 不妨设 B , C B,C B,C A A A的任意两个不同的主析取范式,则 B ⇔ C B\Leftrightarrow{C} BC
    • m i m_i mi只出现在 B B B中而不出现在 C C C中;于是 i i i对应的二进制串 x 1 ⋯ x n x_1\cdots{x_n} x1xn B B B的成真赋值,但不是 C C C的成真赋值,与 B ⇔ C B\Leftrightarrow{C} BC矛盾
    • 所以 B , C B,C B,C的包含的最小项相同,即 B , C B,C B,C是同一个主析取范式
    • 所以唯一性成立
  • 主合取发生范式的证明类似

  • ( p → q ) → r (p\to{q})\to{r} (pq)r ⇔ \Leftrightarrow ( p ∧ ¬ q ∧ ¬ r ) (p\wedge{\neg{q}}\wedge\neg{r}) (p¬q¬r) ∨ \vee ( ¬ p ∧ r ) {(\neg{p}\wedge{r}}) (¬pr) ∨ \vee ( q ∧ r ) {(q\wedge{r})} (qr)
    • ( p ∧ ¬ q ∧ ¬ r ) (p\wedge{\neg{q}}\wedge\neg{r}) (p¬q¬r)是最小项,其成真赋值二进制串为100,记为 m ( 100 ) m_{(100)} m(100)十进制下表示为 m 4 m_4 m4
    • ( ¬ p ∧ r ) {(\neg{p}\wedge{r}}) (¬pr) ⇔ \Leftrightarrow m 1 ∨ m 3 m_1\vee{m_3} m1m3
    • ( q ∧ r ) {(q\wedge{r})} (qr) ⇔ \Leftrightarrow m 3 ∨ m 7 m_3\vee{m_7} m3m7
    • 所以主析取式为 ( p → q ) → r (p\to{q})\to{r} (pq)r ⇔ \Leftrightarrow m 1 ∨ m 3 ∨ m 4 ∨ m 7 m_1\vee{m_3}\vee{m_4}\vee{m_7} m1m3m4m7
  • p ∨ q p\vee{q} pq
    • 容易看出它本身就是一个二元极大项,且是主合取范式,标号为 0 0 0,即 M 0 M_{0} M0
    • 根据两种主范式关系,其主析取范式为 m 1 ∨ m 2 ∨ m 3 m_1\vee m_2\vee m_3 m1m2m3
    • 如果要用基础方法计算主析取范式,过程如下
      • p ∨ q p\vee{q} pq ⇔ \Leftrightarrow ( p ∧ ( q ∨ ¬ q ) ) ∨ ( ( p ∨ ¬ p ) ∧ q ) (p\wedge{(q\vee{\neg{q}})})\vee{((p\vee{\neg{p}})\wedge{q})} (p(q¬q))((p¬p)q)
        • ⇔ \Leftrightarrow ( ( p ∧ q ) ∨ ( p ∧ ¬ q ) ) ((p\wedge{q})\vee{(p\wedge{\neg{q})}}) ((pq)(p¬q)) ∨ \vee ( ( p ∧ q ) ∨ ( ¬ p ∧ q ) ) ((p\wedge{q})\vee{(\neg{p}\wedge{q})}) ((pq)(¬pq))
        • ⇔ \Leftrightarrow ( p ∧ q ) ∨ ( p ∧ ¬ q ) (p\wedge{q})\vee{(p\wedge{\neg{q})}} (pq)(p¬q) ∨ \vee ( ¬ p ∧ q ) {(\neg{p}\wedge{q})} (¬pq)
        • ⇔ \Leftrightarrow m 3 ∨ m 2 ∨ m 1 m_3\vee{m_2}\vee{m_1} m3m2m1
        • ⇔ \Leftrightarrow m 1 ∨ m 2 ∨ m 3 m_1\vee{m_2}\vee{m_3} m1m2m3

主范式的性质👺

求公式的成真与成假赋值

  • 首先,我们知道给定一个 n n n元命题公式 A A A,其真值表有 2 n 2^{n} 2n个条目(所有的 n n n元命题公式可以产生 2 2 n 2^{2^{n}} 22n个条目)

  • 集合定义: S = { 1 , ⋯ , 2 n − 1 } S=\{1,\cdots,2^{n}-1\} S={1,,2n1}

  • 若公式 A A A中含有 n n n个命题变项,则 A A A主析取范式含有 s ( 0 ⩽ s ⩽ 2 n ) s(0\leqslant{s}\leqslant{2^{n}}) s(0s2n)极小项,且 A A A恰好 s s s成真赋值,这些成真赋值恰好是所含极小项下标的二进制串表示,其余 2 n − s 2^{n}-s 2ns个赋值都是成假赋值

    • A A A ⇔ \Leftrightarrow m i 1 ∨ ⋯ ∨ m i s m_{i_1}\vee\cdots\vee m_{i_s} mi1mis, m i j = ( q 1 ) ∧ ⋯ ∧ ( q n ) m_{ij}=(q_1)\wedge\cdots\wedge{(q_n)} mij=(q1)(qn),其中 j = 1 , ⋯ , s j=1,\cdots,s j=1,,s, ( q r ) , r = 1 , ⋯ , n (q_{r}),r=1,\cdots,n (qr),r=1,,n表示 q r q_r qr ¬ q r \neg q_r ¬qr
    • A A A为真当且仅当 m i j m_{ij} mij中至少有一个真值为真,显然 i 1 , ⋯ , i s i_1,\cdots,i_s i1,,is分别使得 m i 1 , ⋯ , m i s m_{i_1},\cdots,m_{i_s} mi1,,mis为真,也就能使 A A A为真
    • 除此 s s s个成真赋值外,所有赋值 j 1 , ⋯ , j t j_1,\cdots,j_{t} j1,,jt( t = 2 n − s t=2^{n}-s t=2ns个)都不能使 m i 1 , ⋯ , m i s m_{i_1},\cdots,m_{i_s} mi1,,mis中地任何一个成真,相应地 A A A成假
    • 上述结论表明,我们可以从给定的主析取范式中直接根据各个极小项的下标得出所有的成真赋值( i 1 , ⋯ , i s i_1,\cdots,i_s i1,,is);然后用集合 S S S减去成真赋值下标构成的集合(也就是主析取式中未出现的下标集合),就是所有成假赋值的集合 ( j 1 , ⋯ , j t ) , t = 2 n − s (j_1,\cdots,j_t),t=2^{n}-s (j1,,jt),t=2ns

主析取范式直接得到主合取范式

  1. 类似的分析主合取范式
    • 对于主合取范式, A A A ⇔ \Leftrightarrow M j 1 ∧ ⋯ ∧ M j w M_{j_1}\wedge\cdots\wedge M_{j_w} Mj1Mjw, M j k = ( q 1 ) ∨ ⋯ ∨ ( q n ) M_{jk}=(q_1)\vee\cdots\vee{(q_n)} Mjk=(q1)(qn),其中 ( q r ) , r = 1 , ⋯ , n (q_{r}),r=1,\cdots,n (qr),r=1,,n表示 q r q_r qr ¬ q r \neg q_r ¬qr
    • 赋值 j 1 , ⋯ , j w j_1,\cdots,j_w j1,,jw分别使得 M j 1 , ⋯ , M j w M_{j_1},\cdots,M_{jw} Mj1,,Mjw成假,因而它们的合取公式成假,即使得 A A A成假
      • 其余赋值使得 M j 1 , ⋯ , M j w M_{j_1},\cdots,M_{jw} Mj1,,Mjw都成真,即使 A A A成真
    • 因此,若已知 A A A的主析取范式有 s s s个极小项 ( 0 < s < 2 n ) (0<s<2^{n}) (0<s<2n),即 A A A s s s个成真赋值,
      • A A A w = 2 n − s w=2^{n}-s w=2ns个成假赋值, A A A的主合取范式有 w = 2 n − s w=2^{n}-s w=2ns项的极大项
      • w w w个极大项的下标分别是 j 1 , ⋯ , j w j_1,\cdots,j_w j1,,jw,它们和极小项下标 i 1 , ⋯ , i s i_1,\cdots,i_s i1,,is恰好能一一对应 S S S中的元素
    • 事实上, m j 1 ⋯ m j w m_{j_1}\cdots{m_{j_w}} mj1mjw ¬ A \neg{A} ¬A的极小项: ¬ A = m j 1 ∨ ⋯ ∨ m j w \neg{A}=m_{j_1}\vee\cdots\vee{m_{jw}} ¬A=mj1mjw
      • A A A ⇔ \Leftrightarrow ¬ ¬ A \neg{\neg{A}} ¬¬A ⇔ \Leftrightarrow ¬ ( m j 1 ∨ ⋯ ∨ m j w ) \neg{(m_{j_1}\vee\cdots\vee{m_{jw}})} ¬(mj1mjw) ⇔ \Leftrightarrow ¬ m j 1 ∧ ⋯ ∧ ¬ m j w \neg m_{j_1}\wedge\cdots\wedge\neg{m_{jw}} ¬mj1¬mjw ⇔ \Leftrightarrow M j 1 ∧ ⋯ ∧ M j w M_{j_1}\wedge{\cdots}\wedge{M_{jw}} Mj1Mjw
  2. 上述分析解释了主合取范式与主析取范式间的关系,并且说明了为什么主析取范式和主合取范式共同反映(容易还原)真值表所能表达的全部信息

判断公式的类型

  • 主范式能判断公式类型,这也是主范式能体现真值表的表现
  • A A A中含有 n n n个命题变项,则
    • 从极小项的角度
      • A A A为重言式当且仅当 A A A的主析取范式包含 2 n 2^{n} 2n个极小项( A A A 2 n 2^{n} 2n个成真赋值)
      • A A A为矛盾是当且仅当 A A A的主析取范式不含任何极小项(主合取范式包含 2 n 2^{n} 2n个极大项, A A A 2 n 2^{n} 2n个成假赋值);此时 A A A的主析取范式为0(表示矛盾式)
      • A A A为可满足式当且仅当 A A A的主析取范式包含至少一个极小项
    • 从极大项的角度
      • A A A为重言式当且仅当 A A A的主合取范式不含极大项(规定此时 A A A的主合取范式为1)
      • A A A为矛盾是当且仅当 A A A的主合取范式包含 2 n 2^{n} 2n个极大项
      • A A A是可满足式时, A A A至少有一个成真赋值,因此 A A A的主合取范式极大项个数少于 2 n 2^{n} 2n

n n n元命题公式的主析取范式(主合取范式)的个数

  • 根据排列组合可知,主析取范式和主合取范式的个数 N 1 , N 2 N_1,N_2 N1,N2相等,它们都可以从 n n n元极小项集合( N = 2 n N=2^{n} N=2n个元素)中抽取 0 ∼ 2 n 0\sim{2^{n}} 02n
  • 因此都为 N 1 = N 2 = ∑ i = 0 N ( N i ) N_1=N_2=\sum_{i=0}^{N}\binom{N}{i} N1=N2=i=0N(iN)= ( 1 + 1 ) N (1+1)^{N} (1+1)N= 2 2 n 2^{2^n} 22n,则个数字和所有 n n n元命题公式的真值表个数相等

判断两个命题公式是否等值

  • A , B A,B A,B共有 n n n个命题变项,按 n n n个命题变项求出 A , B A,B A,B的主析取范式 A ′ , B ′ A',B' A,B,显然 A A A ⇔ \Leftrightarrow A ′ A' A , B B B ⇔ \Leftrightarrow B ′ B' B
  • A ′ = B ′ A'=B' A=B,则 A A A ⇔ \Leftrightarrow B B B,否则 A A A ⇎ \not\Leftrightarrow B B B

给出一个满足给定真值表的命题公式

  • 我们以半加器和全加器为例进行讨论相关算法
  • 这部分涉及数字逻辑(数字电路逻辑,这门课很多内容是抽象数理逻辑具象化(或说知识应用))
    • 数理逻辑中的真,假分别对应于数字电路逻辑中的二值(1,0)或高,低电平
  • 我们的任务使从给定真值表通过一定的方法给出满足真值表的公式

半加器

  • 例如二进制半加器(不考虑上一位的进位,但是考虑下一位进位;其输入变元 x , y x,y x,y其输出变元包含半 h h h和半进位 d d d),我们根据半加器的真值表来求取一个真值表和半加器相同的命题公式

  • xy本位和位h下一位进位d
    0000
    0110
    1010
    1101
    • 分析此表,其包含了两个公式(输出半和位,半进位)

      • x , y , h x,y,h x,y,h; x , y , d x,y,d x,y,d
    • 下面我尝试给出主析取范式 h ( x , y ) h(x,y) h(x,y), d ( x , y ) d(x,y) d(x,y)

      • 根据公式和其主范式的关系,如果要求主析取范式,则我们只需要关注真值表中的成真赋值

      • 若想要求主合取范式

        • 可以仅关注真值表中的成假赋值
        • 也可以先求主析取范式,然后根据主合取范式和主析取范式的关系间接求得
      • xyh
        000
        011
        101
        110
      • xyd
        000
        010
        100
        111
    • h = m 1 ∨ m 2 h=m_1\vee{m_2} h=m1m2= ( ¬ x ∧ y ) ∨ ( x ∧ ¬ y ) (\neg{x}\wedge{y})\vee(x\wedge{\neg{y}}) (¬xy)(x¬y),

      • 类似地可以求 h = M 0 ∧ M 3 h=M_0\wedge{M_3} h=M0M3= ( x ∨ y ) ∧ ( ¬ x ∨ ¬ y ) ({x}\vee{y})\wedge{(\neg{x}\vee{\neg{y}})} (xy)(¬x¬y)
    • d = m 3 d=m_{3} d=m3= x ∧ y x\wedge{y} xy;

      • 类似地可以求得 d = M 0 ∧ M 1 ∧ M 2 d=M_0\wedge{M_1}\wedge{M_2} d=M0M1M2= ( x ∨ y ) ∧ ( x ∨ ¬ y ) ∧ ( ¬ x ∧ y ) (x\vee{y})\wedge{({x}\vee{\neg y})}\wedge{(\neg{x}\wedge{y})} (xy)(x¬y)(¬xy)

全加器

  • 全加器不仅考虑了下一位的进位(carry out,简记为cout,或 c c c),同时考虑了上一位的进位

  • 为此,输入也要有一个进位(carry in,简记为cin,或 c ′ c' c)来使上一位进位进入加法运算

  • 1 , ⋯ , 2 n − 1 1,\cdots,{2^{n}-1} 1,,2n1xy上一位进位cin(c’)本位和位s下一位进位cout©
    000000
    100110
    201010
    301101
    410010
    510101
    611001
    711111
  • s s s= ( ¬ x ∧ ¬ y ∧ c ′ ) (\neg{x}\wedge{\neg y}\wedge{{c'}}) (¬x¬yc) ∨ \vee ( ¬ x ∧ y ∧ ¬ c ′ ) (\neg{x}\wedge{y}\wedge{\neg c'}) (¬xy¬c) ∨ \vee ( x ∧ ¬ y ∧ ¬ c ′ ) (x\wedge{\neg{y}}\wedge{\neg c'}) (x¬y¬c) ∨ \vee ( x ∧ y ∧ c ′ ) (x\wedge{y}\wedge{c'}) (xyc)

    • = m 1 ∨ m 2 ∨ m 4 ∨ m 7 m_1\vee{m_2}\vee{m_4}\vee{m_{7}} m1m2m4m7
  • c c c= ( ¬ x ∧ y ∧ c ′ ) (\neg{x}\wedge{y}\wedge{{c'}}) (¬xyc) ∨ \vee ( x ∧ ¬ y ∧ c ′ ) ({x}\wedge{\neg y}\wedge{c'}) (x¬yc) ∨ \vee ( x ∧ y ∧ ¬ c ′ ) (x\wedge{{y}}\wedge{\neg c'}) (xy¬c) ∨ \vee ( x ∧ y ∧ c ′ ) (x\wedge{y}\wedge{c'}) (xyc)

    • = m 3 ∨ m 5 ∨ m 6 ∨ m 7 m_3\vee{m_5}\vee{m_6}\vee{m_7} m3m5m6m7

半加器和全加器的联系

  • 全加器可以由两个半加器和一个或门实现
  • 设输入位为 x , y x,y x,y的半加器的本位和的函数表示 h ( x , y ) = ( ¬ x ∧ y ) ∨ ( x ∧ ¬ y ) h(x,y)=(\neg{x}\wedge{y})\vee(x\wedge{\neg{y}}) h(x,y)=(¬xy)(x¬y)(函数 h h h异或门)
    • 半进位 d ( x , y ) = x ∧ y d(x,y)=x\wedge{y} d(x,y)=xy(即与门)
    • 全加器的本位和 s ( x , y , c ′ ) s(x,y,c') s(x,y,c) ⇔ \Leftrightarrow ( h ( x , y ) ∧ ¬ c ′ ) ∨ ( ¬ h ( x , y ) ∧ c ′ ) (h(x,y)\wedge{\neg{c'}})\vee{(\neg{h(x,y)}\wedge{c'})} (h(x,y)¬c)(¬h(x,y)c) ⇔ \Leftrightarrow h ( h ( x , y ) , c ′ ) h(h(x,y),c') h(h(x,y),c)(1),异或门嵌套
    • 下一位进位 c ( x , y , c ′ ) c(x,y,c') c(x,y,c) ⇔ \Leftrightarrow ( h ( x , y ) ∧ c ′ ) ∨ d ( x , y ) (h(x,y)\wedge{c'})\vee{d(x,y)} (h(x,y)c)d(x,y) ⇔ \Leftrightarrow d ( h ( x , y ) , c ′ ) ∨ d ( x , y ) d(h(x,y),c')\vee{d(x,y)} d(h(x,y),c)d(x,y)(2),其中 c ′ c' c是全加器用来接受上一位进位的输入变量
    • 根据(1),容易仅需要两个半加器(分别记为半加器 a 1 , a 2 a_1,a_2 a1,a2)即可实现 s s s的计算
      • a 1 a_1 a1计算 h ( x , y ) h(x,y) h(x,y),同时提供 d ( x , y ) d(x,y) d(x,y)
      • a 2 a_2 a2计算 h ( h ( x , y ) , c ′ ) h(h(x,y),c') h(h(x,y),c),同时还提供 d ( x , y ) , d ( h ( x , y ) , c ′ ) d(x,y),d(h(x,y),c') d(x,y),d(h(x,y),c)(1.1)
    • 根据(1.1),(2),再加上一个或门就可以计算 c c c,
  • 所以两个半加器和一个或门即可实现全加器
  • 至于半加器,可以使用一个异或门和与门实现(其中异或门可以由两个与门,两个非门和一个或门实现)

Note:

  • 设半加器本位输出和 h = ( ¬ x ∧ y ) ∨ ( x ∧ ¬ y ) h=(\neg{x}\wedge{y})\vee(x\wedge{\neg{y}}) h=(¬xy)(x¬y);全加器下一位进位输出 s s s:

  • s s s ⇔ \Leftrightarrow ( ¬ x ∧ ¬ y ∧ c ′ ) (\neg{x}\wedge{\neg y}\wedge{{c'}}) (¬x¬yc) ∨ \vee ( ¬ x ∧ y ∧ ¬ c ′ ) (\neg{x}\wedge{y}\wedge{\neg c'}) (¬xy¬c) ∨ \vee ( x ∧ ¬ y ∧ ¬ c ′ ) (x\wedge{\neg{y}}\wedge{\neg c'}) (x¬y¬c) ∨ \vee ( x ∧ y ∧ c ′ ) (x\wedge{y}\wedge{c'}) (xyc)

    • ⇔ \Leftrightarrow [ ( ( ¬ x ∧ ¬ y ) ∨ ( x ∧ y ) ) ∧ c ′ ] [((\neg x\wedge{\neg{y}})\vee({x}\wedge{y}))\wedge{c'}] [((¬x¬y)(xy))c] ∨ \vee [ ( ( ¬ x ∧ y ) ∨ ( x ∧ ¬ y ) ) ∧ ¬ c ′ ] [((\neg{x}\wedge{y})\vee{(x\wedge{\neg y})})\wedge{\neg{c'}}] [((¬xy)(x¬y))¬c]
    • 再由分配律和德摩根,可知 w = ( ¬ x ∧ ¬ y ) ∨ ( x ∧ y ) w=(\neg x\wedge{\neg{y}})\vee({x}\wedge{y}) w=(¬x¬y)(xy) h = ( ¬ x ∧ y ) ∨ ( x ∧ ¬ y ) h=(\neg{x}\wedge{y})\vee{(x\wedge{\neg y})} h=(¬xy)(x¬y)是互非的关系: w = ¬ h w=\neg{h} w=¬h
    • 从而 s s s ⇔ \Leftrightarrow ( ¬ h ∧ c ′ ) ∨ ( h ∧ c ′ ) (\neg{h}\wedge{c'})\vee(h\wedge{c'}) (¬hc)(hc)

主范式合并化简

  • 从主范式合并化简为尽可能简单的等价范式是重要问题
  • 这个过程和主范式化的是互逆的过程
  • 主范式的意义在于能够方便的比较两个公式是否等价以及其他真值表能够完成的任务
  • 化简的意义在于,使公式更加简洁,从而在某些应用上更加方便和高效
  • 比如涉及一个具有特定真值表的组合逻辑电路,公式越简单,所需要的基本逻辑门也就越少,布线和硬件成本也更低,功耗也更优
  • 容易知道,化简得结果可能不唯一,但好的结果使项数尽可能少,每项的变元尽可能少

卡诺图法

  • 在数字逻辑中,这个任务称为逻辑函数化简
    • 有表格化方法,叫做卡诺图法,其借助格雷码设计而成,通过画卡诺圈来给出化简后的公式
      • 这种方法有比较一般的步骤,但是对于变量数目多的(4个以上),就比较繁琐
    • 也可用公式的运算律(等值式模式)作合并化简工作,这种方式对于基本功要求比较扎实

公式法

  1. 并项法: ( A ∧ B ) ∨ ( ¬ A ∧ B ) (A\wedge B)\vee(\neg{A}\wedge{B}) (AB)(¬AB) ⇔ \Leftrightarrow B B B;该公式可以将两个与项合并为一个,并且消去其中的一个变量
  2. 吸收法: A ∨ ( A ∧ B ) A\vee (A\wedge B) A(AB) ⇔ \Leftrightarrow A A A;吸收多余的与项
  3. 消去法: A ∨ ( ¬ A ∧ B ) A\vee(\neg{A}\wedge{B}) A(¬AB) ⇔ \Leftrightarrow A ∨ B A\vee{B} AB;消去与项多余的因子
  4. 配项消项法: ( A ∧ B ) ∨ ( ¬ A ∧ C ) (A\wedge{B})\vee(\neg{A}\wedge{C}) (AB)(¬AC) ⇔ \Leftrightarrow ( A ∧ B ) ∨ ( ¬ A ∧ C ) ∨ ( B ∧ C ) (A\wedge{B})\vee{(\neg{A}\wedge{C})}\vee{(B\wedge{C})} (AB)(¬AC)(BC)配项多出一个与项,尝试合并其他与项来消去更多与项

最简范式

  • 最简主析取式(最简与或式):简单合取式个数最少(与项个数最少);简单合取式(与项)中变量个数最少
  • 最简主合取式(最简或与式):简单析取式个数最少(或项个数最少);简单析取式(或项)中变量个数最少

相关文章:

DM@命题公式@主范式的性质和应用@数理逻辑解决数字电路全加器问题

文章目录 abstract主合取范式与主析取范式间的关系&#x1f47a;主范式存在及唯一性定理例 主范式的性质&#x1f47a;求公式的成真与成假赋值主析取范式直接得到主合取范式 判断公式的类型 n n n元命题公式的主析取范式(主合取范式)的个数判断两个命题公式是否等值 给出一个满…...

基于微信小程序+Springboot线上租房平台设计和实现【三端实现小程序+WEB响应式用户前端+后端管理】

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…...

Xilinx FPGA 7系列 GTX/GTH Transceivers (2)--IBERT

IBERT GTX IBERT核心提供了基础广泛的物理介质附件(PMA)评估7系列FPGA GTX收发器的演示平台。可参数化以使用不同GTX收发器和时钟拓扑,IBERT核心也可以定制使用不同的线速率、参考时钟速率和逻辑宽度。数据模式生成器和每个所需的GTX收发器都包含了检查程序,给出了几个不同…...

Python 文件介绍和正则表达式

文章目录 Python 文件和正则表达式文件打开文件读取文件直接读取 read()&#xff1a;逐行读取采用 **for** 循环&#xff1a;采用 readlines()&#xff1a; 正则表达式匹配规则re 模块match 方法&#xff1a;search 方法group 方法split 方法编译&#xff1a;compile 方法 Pyth…...

ueditor百度富文本编辑器粘贴后html丢失class和style样式

问题 项目经理从123在线编辑上排版好的文章&#xff0c;粘贴到项目的编辑器上&#xff0c;样式完全乱了, 排版是这样的&#xff1a; 复制到ueditor后的格式&#xff1a; 这天差地别呀&#xff0c;于是打开代码模式&#xff0c;发现section的属性全没了 但是&#xff0c;sp…...

人脸自动贴国旗

&#xff08;一&#xff09;简介 国庆快到了&#xff0c;每年这个时候&#xff0c;大家的头像都会贴上国旗水印&#xff0c;然后我就像这刚好可以用opencv dilb实现一个简单的自动将国旗贴在人脸上&#xff0c;刚好配合gradio写一个简单的demo gradio官方文档 &#xff08;…...

异步FIFO设计

1 FIFO简介 FIFO的本质是RAM&#xff0c;具有先进先出的特性。 FIFO的基本使用原则&#xff1a;空时不能读&#xff0c;满时不能写 FIFO的两个重要参数&#xff1a;宽度和深度 FIFO的两种类型&#xff1a; 同步FIFO&#xff1a;读写时钟相同&#xff0c;通常用来做数据缓存…...

学习python和anaconda的经验

PYTHON 1 常用命令 1.1 1.1 注释 Python注释多行的方法有以下三种:使用ctrl+/实现多行注释、在每一行的开头使用shift+#键、输入’‘’ ‘’或者"“” “”",将要注释的代码插在中间 1.2 def init( ):函数 区分两个函数: 1.def init(self): 这种形式在__init_…...

【Linux】多线程【上】

文章目录 前言1、Linux线程概念1-1、什么是线程&#xff1f;1-1-1、如何看待页表1-1-2、回顾进程地址空间1-1-3、页表怎么进行虚拟地址到物理地址的映射的&#xff1f;1-1-4、Linux中线程的概念&#xff08;重点&#xff09;1-1-5、原生线程库1-1-6、代码测试1-1-7、知识点&…...

生成式人工智能在高等教育 IT 中的作用

作者&#xff1a;Jared Pane 通过将你大学的数据与公共 LLMs 和 Elasticsearch 安全集成来找到你需要的答案。 根据 2023 年 4 月 EDUCAUSE 的一项调查&#xff0c;83% 的受访者表示&#xff0c;生成式人工智能将在未来三到五年内深刻改变高等教育。 学术界很快就询问和想象生…...

黑龙江省DCMM认证、CSMM认证、CMMM认证、知识产权等政策奖励

2023年8月28日 为深入落实党的二十大精神&#xff0c;认真落实省第十三次党代会关于创新龙江建设的部署要求&#xff0c;全面贯彻新发展理念&#xff0c;融入和服务构建新发展格局&#xff0c;实施创新驱动发展战略&#xff0c;着力建设创新龙江&#xff0c;不断塑造振兴发展新…...

腾讯云2023年云服务器优惠活动价格表

腾讯云经常推出各种云产品优惠活动&#xff0c;为了帮助大家更好地了解腾讯云服务器的价格和优惠政策&#xff0c;下面给大家分享腾讯云最新云服务器优惠活动价格表&#xff0c;助力大家轻松上云&#xff01; 一、轻量应用服务器优惠活动价格表 1、轻量应用服务器&#xff1a;…...

Sleuth--链路追踪

1 链路追踪介绍 在大型系统的微服务化构建中&#xff0c;一个系统被拆分成了许多模块。这些模块负责不同的功能&#xff0c;组合成系统&#xff0c;最终可以提供丰富的功能。在这种架构中&#xff0c;一次请求往往需要涉及到多个服务。互联网应用构建在不同的软件模块集上&…...

MyBatis初级

文章目录 一、mybatis1、概念2、JDBC缺点2.1、之前jdbc操作2.2 、原始jdbc操作的分析 3、mybatis的使用3.1、导入maven依赖3.2、新建表3.3、实体类3.4、编写mybatis的配置文件3.5、编写接口 和 映射文件3.6、编写测试类3.7、注意事项 4、代理方式开发5、mybatis和spring整合5.1…...

Spring 学习(二)AOP

一、什么是AOP Aspect Oriented Programming&#xff0c;即面向切面编程。对一个大型项目的代码而言&#xff0c;整个系统要求关注安全检查、日志、事务等功能&#xff0c;这些功能实际上“横跨”多个业务方法。在一般的OOP编程里&#xff0c;需要在每一个业务方法内添加相关非…...

笔记1.1 计算机网络基本概念

计算机网络是通信技术与计算机技术紧密结合的产物 通信系统模型&#xff1a; 计算机网络是一种通信网络 计算机网络是互连的、自洽的计算机集合。 互连&#xff1a;互联互通 自洽&#xff1a;无主从关系 通过交换网络互连主机 Internet&#xff1a;数以百万计的互连的计算设…...

液压切管机配套用液压泵站比例阀放大器

液压切管机配套用液压泵站是液压系统的动力源&#xff0c;可按机械设备工况需要提供一定压力、流量和清洁度的工作介质。它由泵组、油箱组件、控温组件、滤油器组件及蓄能器组件等组合而成&#xff0c;液压泵站主要服务于大型管道工程。...

C++ Primer Plus 第七章笔记

目录 函数基本知识 没有返回值的函数&#xff1a;void函数 有返回值的函数&#xff1a; 函数原型 1.为什么需要函数原型&#xff1f; 2.函数原型的语法 3.函数原型的功能 按值传递函数参数 形参和实参 局部变量 参数问题 使用const指针参数 调用自身的函数&#xf…...

常用数据库的 API - 开篇

API API 这个词在大多数人看来可能和 CNS 差不多&#xff0c;前者天天听说就是用不上&#xff0c;后者天天读就是发不了。 不过&#xff0c;通过今天的一个简短介绍&#xff0c;今后 API 这个东西你就用上了&#xff0c;因为在文章最后我将会展示一个最最基础且高频的 API 使…...

C++之生成详细汇编代码(二百一十六)

简介&#xff1a; CSDN博客专家&#xff0c;专注Android/Linux系统&#xff0c;分享多mic语音方案、音视频、编解码等技术&#xff0c;与大家一起成长&#xff01; 优质专栏&#xff1a;Audio工程师进阶系列【原创干货持续更新中……】&#x1f680; 人生格言&#xff1a; 人生…...

AIGC|当一个程序员学会用AI来辅助编程实践

一、辅助编程 作为主要以 JAVA 语言为核心的后端开发者&#xff0c;其实&#xff0c;早些时间我也用过比如 Codota、Tabnine、Github 的 Copilot、阿里的 AI Coding Assistant 等 IDEA 插件&#xff0c;但是我并没有觉得很惊奇&#xff0c;感觉就是生成一些代码片段罢了&#x…...

9.14号作业

仿照vector手动实现自己的myVector&#xff0c;最主要实现二倍扩容功能 有些功能&#xff0c;不会 #include <iostream>using namespace std; //创建vector类 class Vector { private:int *data;int size;int capacity; public://无参构造Vector(){}//拷贝构造Vector(c…...

【面试题】C/C++ 中指针和引用的区别

指针是一个独立的对象&#xff0c;它可以指向不同的变量或对象&#xff0c;可以重新赋值给其他变量。而引用是已存在的变量的别名&#xff0c;它必须在定义时初始化&#xff0c;并且不能重新绑定到另一个变量。指针可以是空指针&#xff08;nullptr&#xff09;&#xff0c;它不…...

spring boot 整合多数据源

多数据源产生的场景 一般情况下&#xff0c;不会有多数据源这样的场景出现&#xff0c;但老项目或者特殊需求的项目&#xff0c;可能会有这样的场景 同一个应用需要访问两个数据库不用数据库中间件的读写分离 注入数据源选择的时机 声明两个数据源实例&#xff0c;在getConnect…...

数据集成:数据挖掘的准备工作之一

⭐️⭐️⭐️⭐️⭐️欢迎来到我的博客⭐️⭐️⭐️⭐️⭐️ &#x1f434;作者&#xff1a;秋无之地 &#x1f434;简介&#xff1a;CSDN爬虫、后端、大数据领域创作者。目前从事python爬虫、后端和大数据等相关工作&#xff0c;主要擅长领域有&#xff1a;爬虫、后端、大数据…...

xml配置文件密码特殊字符处理

错误姿势&#xff1a; 正确姿势&#xff1a;采取转义符的方式 常用转义符&#xff1a;...

遥感数据与作物模型同化

基于过程的作物生长模拟模型DSSAT是现代农业系统研究的有力工具&#xff0c;可以定量描述作物生长发育和产量形成过程及其与气候因子、土壤环境、品种类型和技术措施之间的关系&#xff0c;为不同条件下作物生长发育及产量预测、栽培管理、环境评价以及未来气候变化评估等提供了…...

UI库DHTMLX Suite v8.2发布全新表单组件,让Web表单实现高度可定制!

DHTMLX Suite v8.2日前已正式发布&#xff0c;此版本的核心是DHTMLX Form&#xff0c;这个小部件接收了4个备受期待的新控件&#xff0c;如Fieldset、Avatar、Toggle和ToggleGroup。官方技术团队还为Grid和TreeGrid小部件中的页眉/页脚工具提示提供了一系列新的配置选项等。 在…...

河北省图书馆典藏《乡村振兴振兴战略下传统村落文化旅游设计》许少辉八一新著

河北省图书馆典藏《乡村振兴振兴战略下传统村落文化旅游设计》许少辉八一新著...

什么是卷积002

文章目录 前言1.卷积网络和传统网络区别2.卷积神经网络整体架构1.输入层2. 卷积层3.池化层4.全连接层 5.神经网络6.经典网络1.Alexnet2. Vgg3.Resnet 残差网络-特征提取 7.感受野 前言 大纲目录 首先链接图像颜色通道 1.卷积网络和传统网络区别 右边的就是CNN&#xff0c;卷…...

南头企业网站建设公司/广州网络推广公司

javaScript中自定义滚动条二 完整代码&#xff1a;&#xff08;代码只是面向功能&#xff0c;后期有待优化&#xff0c;一写细节的完善&#xff09; <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtm…...

google建站/人工智能培训机构排名

0. 传送门 论文地址&#xff1a;https://arxiv.org/abs/2003.12929 github地址&#xff1a;https://github.com/fuy34/superpixel_fcn 1. 简介 超像素最直观的解释&#xff0c;就是把一些具有相似特性的像素“聚合”起来&#xff0c;形成一个更具有代表性的大“元素”。 目…...

渭南网站建设wifi/建站开发

接口平台需要解决的一个重要的问题就是让用户更加高效管理环境&#xff0c;这个也是可以体现平台对比直接代码脚本其中一个重要的优势 功能模块 抽取需要在全局管理的功能模块如下&#xff1a; 1. 全局变量 配置全局变量信息&#xff0c;该变量在该项目所有地方均可使用 重…...

肇庆企业建站程序/四川全网推网络推广

int main() {int max, i 0, sum 0; scanf(\ while(sum < max) {i; sum i; }printf(\}第六周作业数字正方型成绩 折扣 10 开启时间 2014年11月12日 星期三 05:55 0.8 折扣时间 2014年11月26日 星期三 05:55 关闭时间 2014年12月3日 星期三 05:55 允许迟交 否 这是双重循环…...

做动态网站的软件有哪些/搭建一个网站平台需要多少钱

centos7下使用pip7.1.0安装软件&#xff0c;在shell下设置了全局http_proxy和https_proxy&#xff0c;但是每次都遇到网络超时问题&#xff0c; 后来使用pip install xxx --proxy <proxy>&#xff0c;安装成功了。...

毕业设计答辩网站开发原理/关键词优化有哪些作用

点击上方蓝字关注我们之前正运动技术与大家分享了&#xff0c;运动控制器的固件升级、ZBasic程序开发、ZPLC程序开发、与触摸屏通讯和输入/输出IO的应用、运动控制器数据与存储的应用、运动控制器ZCAN、EtherCAT总线的使用等。今天&#xff0c;我们来讲解一下正运动技术运动控制…...