提问人:Mike Pennington 提问时间:10/29/2017 更新时间:10/29/2017 访问量:93
用于确定表达式中哪些变量不是确定答案所必需的算法
Algorithm to determine which variables in an expression aren’t necessary to determine the answer
问:
我正在做一个遍历决策树的项目。决策树中的每个节点都有一个公式,该公式可以包含多个变量并且相当复杂。应用程序要求用户逐个输入变量的值。
申请的两个要求是:
- 应用程序必须要求用户按照变量在表达式中出现的顺序回答变量。
- 应用程序必须跳过确定答案不需要的任何变量。
如果语句的格式为:
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。因此,无需要求用户输入这些变量的值。
这些表达式可能相当复杂,包含多个比较运算符和嵌入的 if。例如:
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))
我很难想出一种算法来有效地做到这一点。是否有现有的算法来决定哪些变量在给定表达式中无关紧要?或者也许只是一种思考问题的新方式,可能会对我有帮助?
答:
评论
f=1
1
a
c
d
e