其目标是通过寻找变量之间的值依赖关系来优化大型条件表达式,从而减少逻辑OR语句。
假设我们有以下条件:
if((A == 0 && B == 0) || (A == 0 && B == 1) || (A == 0 && B == 2) ...
一定的次数。。。 有没有一种方法可以通过自动具有以下条件来减少这种例子:
if(A == 0 && (B >= 0 && B <= 2))
第一个条件所涉及的数字仅在该条件之前已知,无法手动键入。 条件中还可能涉及数百个逻辑“或”运算符。 值之间可能存在差距(可能需要使用%运算符),但总有一个模式。
任何一个库或现有的算法可以找到变量之间的依赖关系?
再举一个例子:
if((A == 0 && B == 0) || (A == 0 && B == 2) || (A == 0 && B == 4)
可翻译为:
if((A == 0 && B%2 == 0)
还有一个:
if((A == 0 && B == 0 && C == 0) || (A == 0 && B == 2 && C == 0) || (A == 0 && B == 4 && C == 0) || (A == 0 && B == 0 && C == 1) || (A == 0 && B == 2 && C == 1) || (A == 0 && B == 4 && C == 1))
将转变为:
if(A==0 && B%2==0 && C>=0 && C<=1)
对于所涉及的变量,我有每个术语的所有值。
我有类似[[0,0,0],[0,2,0],[0,4,0],[0,0,1],[0,2,1],[0,4,1]
(例如上一个示例)
谢谢你的时间和答案!
if((A == 0 && B == 0) || (A == 0 && B == 2) || (A == 0 && B == 4)
无法转换为
if((A == 0 && B%2 == 0)
Cuz
B == 6
和等等