gpt4 book ai didi

这组条件可以进一步简化吗?

转载 作者:行者123 更新时间:2023-11-30 20:27:55 24 4
gpt4 key购买 nike

我从这组条件开始:

if (old.tg.all && old.hg.all) {
// reject
}

if (new.tg.all && new.hg.all) {
// reject
}

if (old.hg.all && new.tg.all) {
// reject
}

if (old.tg.all && new.hg.all) {
// reject
}

if (old.tg == new.tg) {
if ( (old.hg == new.hg) || (old.hg.all) || (new.hg.all) ) {
// reject
}
}

if (old.hg == new.hg) {
if ( (old.tg == new.tg) || (old.tg.all) || (new.tg.all) ) {
// reject
}
}

我设法将其减少为:

if (old.tg.all || new.tg.all) && (old.hg.all || new.hg.all) {
// reject
}

if (old.tg == new.tg) {
if ( (old.hg == new.hg) || (old.hg.all) || (new.hg.all) ) {
// reject
}
}

if (old.hg == new.hg) {
if ( (old.tg == new.tg) || (old.tg.all) || (new.tg.all) ) {
// reject
}
}

能否进一步减少逻辑运算和/或 bool 条件重复的数量?

最佳答案

对于您关于逻辑表达式简化的原始问题

首先,“表达式简化”并不是一个定义明确的操作。

其次,对简化逻辑表达式的(或多或少)标准理解是 Disjunctive normal form (或者,它的兄弟 Conjunctive normal form )。任何一种结果都可能比原始表达和简化表达更简单。

至少,它们最小化了表达式的深度

对于您完全重写的有关 C 代码的问题

主要问题不是简单性,而是意图的清晰度以及由此产生的可维护性。你不应该担心你编写的代码的字符数或行数,而应该担心理解和修改代码的逻辑有多困难。只要代码清晰,一点冗余和/或额外的(廉价的)检查就不会造成伤害。

关于这组条件可以进一步简化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15483432/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com