最小项最大项小程序中括号外变量并入括号内的逻辑表达式处理问题
随机逻辑表达式生成与处理笔记
最近我在开发一个能随机生成最小项、最大项的小程序,目前需要生成一批随机逻辑表达式问题,具体如下:
- 问题1:
(ABC+C'D'A')C+C'B' - 问题2:
BAC'D'+(CB'A'D)(B'A) - 问题3:
BCA+(B'C)(A'C') - 问题4:
(BC'D'A+CADB')A'DC'+B'+(D'A') - 问题5:
(BC'D'A+CADB')+B'+(D'A')
在处理这些表达式的时候,我发现得分情况操作:
- 问题2、3、5:这类表达式结构相对简单,直接用字符串的
replace()函数就能完成需要的处理,步骤很直观。 - 问题1、4:这两个就有点棘手了,得先判断括号内部是否包含加号。如果括号外面还跟着变量(比如问题1里
(ABC+C'D'A')后面的C,问题4里(BC'D'A+CADB')后面的A'DC'),就必须把这个外部变量并入括号内的每一项中——说白了就是用分配律展开,把(X+Y)Z转换成XZ+YZ的形式,这样后续才能正确转换成最小项或最大项。
内容的提问来源于stack exchange,提问作者waterbottle
相关产品推荐
相关产品推荐

