【发布时间】:2013-03-18 17:46:38
【问题描述】:
我从这组条件开始:
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
}
}
能否进一步减少逻辑运算和/或布尔条件的重复次数?
【问题讨论】:
-
我认为这可能更适合 math.stackexchange.com。
-
我建议尝试 Wolfram Alpha 看看它是否可以为你做这样的事情。
-
您想最小化什么:是逻辑连接器的数量吗?逻辑运算的数量?表达式的长度?
-
如果我发布了一组原始的 C 条件语句并询问是否有办法简化此代码,它会成为主题吗?
-
查看编辑,问题现在更清楚地与编程相关