我正在开发一个遍历决策树的项目。决策树中的每个节点都有一个公式,该公式可以包含多个变量并且相当复杂。应用程序要求用户逐个输入变量的值。
该应用程序的两个要求是:
如果陈述的格式为:
if(expression;pass;fail)
例如,请考虑以下表达式:
if((a=1&b=1)|(c=1&d=1&e=1)|f=1;1;2)
如果我们已经知道a = 1且b = 1,那么无论c,d,e和f的值如何,我们都知道答案为1。因此,无需要求用户输入这些变量的值。
这些表达式可能相当复杂,包含多个比较运算符和嵌入式ifs。例如:
if(a>1;if(b<5;1;if(c=2;2;0));if(d!=2;if(e=1;1;if(f=2;2;0));0))
我有一个糟糕的时间想出一个算法来有效地做到这一点。是否存在用于确定给定表达式中哪些变量无关紧要的现有算法?或者也许只是一种思考问题的新方法,可能会帮助我在这里?