布尔乘积和简化
Posted
技术标签:
【中文标题】布尔乘积和简化【英文标题】:Boolean product and semplify 【发布时间】:2022-01-19 10:29:08 【问题描述】:我有一个问题要问你。
例如我有这个布尔表达式:
(((A AND B) OR C) AND D) AND ((K AND Z) OR (J AND H)) AND Y
这只是一个例子,但我可以有很多这样的表达式,我必须在 javascript 中编写一个算法,以使这个表达式简单并且可以通过 json 表示。
基本思想是像这样使用布尔产品:
(A AND B) OR C = (A OR C) AND (B OR C)
但是我怎样才能为此编写自动的东西呢?
谢谢。
【问题讨论】:
(A AND B) OR C = (A OR C) AND (B OR C)
这两个中的哪一个可以用 JSON 表示?如何?您的第一个示例表达式的哪一部分不可以用 JSON 表示?
感谢您的回复。我必须用 JSON 来表达这两种表达方式。用户应该使用前端应用程序创建配置,我必须全部转换。
那我不明白这个问题。 如何表示它们?为什么第一个不能表示?
“我必须用 JavaScript 编写一个算法,以使这个表达式简单并可以通过 json 表示” 这可以像 "expression": "(((A and B) ..."
一样简单,或者你实际上可以有解析器为您生成 AST。有一些解析器生成器采用一种语言的语法并为您生成解析器。如果您甚至不知道如何在 JSON 中表示此信息,那么您首先必须考虑这一点。我们无法告诉您如何表示它,因为我们不知道数据将如何被使用。您必须查看您的要求并相应地设计格式。
我要像塞巴斯蒂安的图书馆一样表达!现在我正在努力谢谢大家的回复,我会让你知道结果!
【参考方案1】:
您可以在 GitHub 上查看现有的库,例如 riichard/boolean-parser-js。
【讨论】:
谢谢兄弟,我想这就是答案,我试着让你知道!以上是关于布尔乘积和简化的主要内容,如果未能解决你的问题,请参考以下文章