【发布时间】:2016-06-11 20:01:18
【问题描述】:
我的一个朋友开玩笑地问了我这个问题。这本来是一种“不言而喻”的评论,但后来我真的考虑了一段时间,并开始想出一些聪明的“几乎解决方案”。
第一次尝试:
如果 C 曾经支持量子计算,那么可能会有答案。一个 q 位可以同时处于多个状态,因此它可能是假和真,并且此条件将返回
(BOOL)0.5aka "Yes/no/maybe-so" - 但是一旦你观察到变量,整个事情就会崩溃并且再次失效。
第二次尝试:
如果 X 可以以某种方式定义为随机二进制生成器,并且您将其转换为 BOOL,则有时您可能会得到 false。我不确定您是否可以在 C 中执行此操作,除非您使用 CLANG。
#define x (BOOL)!!(rand()%2)
我们讨论这个问题的语言是C,但我也很好奇是否有人能找到任何任何语言的解决方案。
【问题讨论】:
-
答案:未定义的行为。
-
这是哈姆雷特几百年前提出的问题:
bb || !bb。 -
@nsilent22 我笑得有点硬了????
-
如果发生未定义的行为或未指定值,则表达式可能为假。
-
你可以忘记你的量子计算解释:如果
x是真假叠加,那么!x将与x纠缠,即。当测量x产生假时,测量!x将精确地产生真,反之亦然。在这两个纠缠的 qbit 上计算 or 将产生一个非常经典的 qbit。 (这就是量子计算机的美妙之处:它们允许一次计算具有所有可能输入的函数。但计算在逻辑上仍然是合理的。)
标签: c boolean logic conditional boolean-logic