You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

布尔表达式化简是否有特定顺序?如何判断化简终止?

布尔表达式化简:!(n || p)|| p &&(n || q)的进一步化简

嘿,这个布尔表达式确实还能进一步化简!你第一步用德摩根定律把!(n || p)转换为!n && !p是完全正确的,得到!n && !p || p && (n || q)后,其实还有不少布尔代数的规则可以用上,不用怕优先级的问题——只要用括号明确分组,就不会打乱运算逻辑~

分步化简过程

第一步:展开子表达式

先对p && (n || q)应用分配律(a && (b || c) = (a && b) || (a && c)),把它展开:

p && (n || q) = p && n || p && q

代入原式后,整个表达式变为:

!n && !p || p && n || p && q

第二步:两种化简方向

这里有两种常用的化简路径,都能得到更简洁的等价表达式:

方向一:合并同类项,保留紧凑结构

把后两项p && n || p && q提取公共因子p,再次用分配律合并,得到:

p && (n || q)

所以整个表达式可以写成更紧凑的形式:

!n && !p || p && (n || q)

这个形式已经比最初的表达式简洁,而且逻辑清晰——要么n和p都为假,要么p为真且n或q为真。

方向二:转换为合取范式(与或式)

如果需要转换为合取范式(多个或表达式的与运算),可以对原式应用或对与的分配律(a || (b && c) = (a || b) && (a || c)):

(!n && !p) || (p && (n || q)) = (!n && !p || p) && (!n && !p || n || q)

接下来分别化简两个括号内的子表达式:

  1. 第一个括号:!n && !p || p
    用分配律拆分:(p || !n) && (p || !p)。因为p || !p恒等于true(互补律),所以整个括号简化为:
    p || !n
    
  2. 第二个括号:!n && !p || n || q
    先处理n || !n && !p,利用恒等式a || (!a && b) = a || b,得到n || !p,再加上q后,整个括号简化为:
    n || !p || q
    

最终,表达式化简为合取范式:

(p || !n) && (n || !p || q)

验证等价性

你可以通过枚举n、p、q的所有8种布尔组合,分别计算原式和化简后的表达式结果,会发现两者完全一致,说明化简是等价的。

内容的提问来源于stack exchange,提问作者MrJ

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 08:29:04