组合两个布尔方程以将布尔变量与其他变量分开

发布于 2024-12-10 00:35:09 字数 276 浏览 1 评论 0原文

我有 2 个程序:X 和 Y。X

有两个位图 A 和 C。X

调用 Y。Y

有一个位图 B。

我需要在 Y 中执行的代码是

if AB == B && BC == C 
    //do some action Z

我想使用布尔运算组合 A 和 C,这样我可以将单个位图传递给 Y。然后,这个单个位图可以对 B 进行任何布尔运算以返回 true / false,因此我可以决定执行操作 Z。

I have 2 programs: X and Y.

X has two bitmaps A and C.

X calls Y.

Y has a bitMap B.

The code I need to execute in Y is

if AB == B && BC == C 
    //do some action Z

I want to combine on A and C using boolean operations such that I can pass a single bitMap to Y. This single bitmap can then do any boolean operation with B to return true / false and accordingly I can decide to do action Z.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

不醒的梦 2024-12-17 00:35:09

没有办法通过组合 A 和 C 来简化。

这是我们的真值表:

B A C  Z
0 0 0  1
0 0 1  0
0 1 0  1
0 1 1  0
1 0 0  0
1 0 1  0
1 1 0  1
1 1 1  1

从真值表中我们可以看到,当 B = 0 时,我们有 Z = 而不是 C;当 B = 1 时,我们有 Z = A。

为了矛盾起见,假设我们有一个一位函数 Y = f(A, C) 来“汇总”A 和 C。我们使用 B 来选择汇总是否等于“非 C”与“A”。但这显然是不可能的,因为单个位无法保存足够的信息来提取值“非 C”以及值“A”。

There is no way to simplify by combining A and C.

Here is our truth table:

B A C  Z
0 0 0  1
0 0 1  0
0 1 0  1
0 1 1  0
1 0 0  0
1 0 1  0
1 1 0  1
1 1 1  1

We can see from the truth table that when B = 0, we have Z = not C; when B = 1, we have Z = A.

Suppose for the sake of contradiction that we have a one-bit function Y = f(A, C) that "summarizes" A and C. We use B to choose whether the summary equals 'not C' versus 'A'. But this is clearly impossible, because a single bit cannot preserve enough information to be able to extract the value 'not C' and also the value 'A'.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文