gpt4 book ai didi

java - 如何在 JAVA 中将 CNF (a ∨ ¬b ∨ c) ∧ (¬a ∨ d) 表示为列表或字符串

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:24:23 26 4
gpt4 key购买 nike

例如 (a ∨ ¬b ∨ c) ∧ (¬a ∨ d)"(a !b c) (!a d)" ((a (不是 b) c) ((不是 a) d))

我可能没有把我的问题说清楚..我的意思是我怎样才能消除! && || 只需使用

((a (not b) c) ((not a) d)) 而不是 (a || !b || c) && (!a || d)

抱歉弄错了..

希望有人能给我一个例子或链接。谢谢...

最佳答案

Unicode 拥有所有这些字符。您可以简单地将其存储为一个字符串,其中包含您显示的字符。

但是,目前还不清楚这是否是您真正想知道的...关于“如何表示 X”的真正问题取决于您希望有效地使用 X 做什么。

如果您没有需要高效处理的计算,那么几乎任何表示它的方式都可以,包括我上面的 Unicode 建议。

如果问题是“如何在给定 a、b、c、d 的 boolean 值的情况下以纳秒为单位评估此公式,文本解决方案是完全错误的。在后一种情况下,您可能希望最终将其表示为一个系列可由 CPU 直接执行的机器指令。

中间有很多变体,最流行的是 Abstract Syntax Trees (AST) , 擅长表示表达式。这样一棵树的运算符节点包含运算符类型(非、与、或),叶​​节点表示变量 a、b、c、d。算子节点链接到子节点,子节点可能是其他算子,也可能是树叶;因此你 build 了一棵树。 (列表 S 表达式是写下这种树的一种有趣方式)。

您可以使用表示运算符和操作数的类在 Java 中创建 AST 节点。运算符节点的成员是引用其他运算符节点或叶节点的对象。您可以在此处查看示例:Java tree data-structure?

AST 既可用于对公式进行中速分析,又可在需要时作为生成该机器代码的第一步。

关于java - 如何在 JAVA 中将 CNF (a ∨ ¬b ∨ c) ∧ (¬a ∨ d) 表示为列表或字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8025086/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com