【发布时间】:2014-04-14 11:09:54
【问题描述】:
假设我有一组 S 定义为字符串,例如如下:
S = '(A or B) and not(A and C)'
其中 A、B 和 C 是有限集,例如:
A = {0, 1}
B = {0, 2}
C = {1, 3}
如果我们一步一步分析S,我们有:
(A or B) = {0, 1, 2}
(A & C) = {1}
not(A & C) = {0, 2, 3}
这给了我们最终的结果:
S = {0,2}
鉴于S 的定义为一般布尔公式,我如何计算其元素?
我不太清楚如何着手解决这个问题。一方面,我想知道是否需要使用完整的词法解析器。另外,经过一番阅读,我还发现了两个似乎高度相关的概念,但不知道它们将如何应用:
【问题讨论】:
-
旁白:
and和or可能不会像您认为的那样行事。如果您尝试A = {0, 1}; B = {0, 2}; Z = A or B; print(Z),您将看不到{0, 1, 2}。 OTOH,A | B应该满足您的期望。
标签: python math set boolean scipy