【问题标题】:Monotone Boolean Function单调布尔函数
【发布时间】:2019-04-16 10:50:05
【问题描述】:

我需要帮助。我想编写一个函数来检查布尔函数是否单调。 例如,如果我们有 2 个参数的函数 f(x1, x2)

  1. f(0, 0) = 0
  2. f(0, 1) = 0
  3. f(1, 0) = 0
  4. f(1, 1) = 1

因为这个函数将返回 true。

【问题讨论】:

  • “单调函数”是一个数学术语,它不能应用于 C++ 函数。没有什么可以阻止该函数返回具有相同参数的不同结果,例如 f(1, 1) = 1 f(1, 1) = 0 f(1, 1) = 0 f(1, 1) = 1
  • 我投票结束这个问题,因为 StackOverflow 不是免费的代码编写服务。
  • 您将函数的数学概念与函数的编程概念混合在一起。我不明白你的意思。您需要先澄清您的问题,然后再提出具体问题。 “我需要帮助”,然后只是转储锻炼要求在这里是题外话。
  • 函数 f : {0, 1} n → {0, 1} 是单调的,如果 f (α1, . . . , αn) ≤ f (β1, . . . , βn) 每当 ( α1, ..., αn) ≺+ (β1, ..., βn)。它是布尔代数

标签: c++


【解决方案1】:

一般意义上你不能。想象一个像这样的 c++ 函数:

bool f(bool x1, bool x2) {
    return rand() > 50;
}

无论您实施何种检查,您都不能肯定地说此功能是否单调。有时您可能会收到上述预期结果,但有时您不会...

【讨论】:

  • return rand() > 0.5; 似乎有点傻,因为rand() 返回int,但您正在与double 进行比较。
  • @JesperJuhl 已更改,但这并不是答案的重点。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-05-06
  • 1970-01-01
  • 2011-10-17
  • 2012-01-23
  • 2011-08-06
  • 1970-01-01
  • 2021-10-31
相关资源
最近更新 更多