我在文件中有一些布尔表达式,如下所述。
((a&&b)|(c&&a)|(r&&s) && !(c)&& (f>=5)) = false
((e&&f) !(n)&& p) = false
等等。
我的任务是找到表达式中使用的变量的所有可能的布尔组合,这将产生表达式右侧提到的结果。
我是c#的初学者。请指导我实现这一目标。
答案 0 :(得分:0)
您可以为有限数量的输入执行此操作,并且知道输入值如下:
public void CalculateExpression(Expression<Func<bool, bool, int, bool>> expr){
var compiledExpr = expr.Compile();
for(var a = false; !a; !a)
for(var b = false; !b; !b)
for(var c = 0; c < 100; c)
if(compiledExpr.Invoke(a,b,c))
//Print or do whatever you want with that parameter combination
}
//Call with any of your login sentences
CalculateExpression((a,b,c) => (a|b)&&(c>5) == false);