【问题标题】:Solving variable value combination through Boolean expression通过布尔表达式求解变量值组合
【发布时间】:2014-12-05 05:13:08
【问题描述】:

我确实在文件中有一些布尔表达式,如下所述。

 ((a&&b)|(c&&a)|(r&&s) && !(c)&& (f>=5)) = false
 ((e&&f) !(n)&& p) = false

等等。

我的任务是为表达式中使用的变量找到所有可能的布尔组合,这将产生表达式右侧提到的结果。

我是 c# 的初学者。请指导我实现这一目标。

【问题讨论】:

  • 所以拿起铅笔和纸,开始写吧......
  • 公平地说,这比编程问题更像是布尔逻辑
  • @DavidPilkington 同意了! OP:我不确定我是否得到了这个问题,但你的意思是你想要所有可能产生真假的变量组合吗?它似乎非常特定于上下文
  • 是的。我需要所有可能产生上述结果的组合。我需要在 c# 中实现一个可以完成它的函数。
  • 我不明白你怎么能拥有(f>=5)(e&&f)

标签: c# boolean


【解决方案1】:

您可以对有限数量的输入执行此操作,并了解如下输入值:

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);

【讨论】:

    猜你喜欢
    • 2015-08-23
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-29
    • 2015-08-03
    • 1970-01-01
    • 2016-02-24
    相关资源
    最近更新 更多