Neatbo.

布尔逻辑最小化

按明确 dont-care 集合精确最小化 DNF、CNF 或两者,核验全部 care 行,并保留完整真值表、变量映射、成本与逻辑门 SVG。

浏览器本地处理输入严格布尔表达式 / dontCare / form JSON输出表达式 / 真值 CSV / 逻辑门 SVG / JSON单个文件最多 0.0625 MiB · 最多 1 个
  1. 1添加输入
  2. 2调整设置
  3. 3获取结果

工具输入和文件在当前浏览器处理,不会上传。

输入内容

切换工具时在当前标签页临时保留输入。刷新或关闭后清除,较大的结果可能需要重新生成。

⌘ / Ctrl + Enter 运行

或将文件拖到这里

文件留在当前设备,原始文件不会被覆盖。

.json · .txt

单个文件最多 0.0625 MiB · 最多 1 个

    0 个字符 · 0 字节
    处理选项

    先填写标记为必填的选项,其余可保留默认值。

    只处理当前模式的完整源,不自动采用其他来源。

    正在准备处理工具…

    开始之前

    先明确哪些输入允许改变,再按最少项或子句、随后最少字面量完成化简。完整真值表与逻辑门图帮助你核对每个必需输入。

    如何使用

    1. 选择粘贴或文件模式,提供完整 JSON;在其中明确 expression、dontCare 和 form。
    2. 使用 ~ 或 !、&、^、| 及括号写安全布尔表达式;核对 dontCare 为 true 的输入是否确实允许改变。
    3. 运行后核对完成状态、全部 care 行等价、项/子句数与字面量数,以及变量到 bit/mask 的映射。
    4. 下载每种请求范式的 SVG、完整真值 CSV、report、settings、表达式文本和原件;复制完整表达式或完整报告。

    支持范围与限制

    明确选择粘贴或文件模式。粘贴仅处理活动文本;文件模式仅处理一个原始 File,不自动采用另一来源。输入为最多 64 KiB 的完整严格 UTF-8 JSON,表单只选输入模式,form 写在 JSON 中。可接受一个开头的 UTF-8 BOM,原件保存时仍保留其字节;原 File 文件名最多 512 UTF-8 字节且不得含控制字符或 BOM。

    JSON 使用 expression 字符串、form(dnf、cnf 或 both)和可选 dontCare 字符串;省略 dontCare 默认为 False。只支持 ASCII 变量、True/False(也接受 true/false)、~ 或 !、&、^、| 和括号;不执行代码。变量名符合 [A-Za-z_][A-Za-z0-9_]*,区分大小写。

    最多 8 个不同变量,每个名字最多 128 ASCII 字节;expression 与 dontCare 合计最多 4,096 个 token、1,000 个 AST 节点。parser 递归和括号各最多 64 层,冗余括号也计入。

    变量由两个表达式的并集按 ASCII 排序。第 i 个变量绑定 bit i、mask 1<<i;完整枚举最多 256 行。dontCare 为 true 的行不约束结果,但仍保留原函数、dontCare 与化简后的数值。

    每种请求范式必须完成精确 cover:先最少项数(CNF 为子句数),同项数再最少字面量数,并重新核验全部 care 行。最多 6,561 个候选 cube、整次总计 10,000,000 工作量;未完成搜索或超预算会整件拒绝。

    下载完整真值 CSV、全部请求表达式、report、有效 settings、逐字节原 JSON,以及每种请求范式的完整逻辑门 SVG。报告保留全部变量/bit/mask、prime 与已选 cube 映射、成本和完成状态;SVG 反映选中的 cover,不承诺最少逻辑门数。

    完整文件加全部复制文本最多 8 MiB,typed compact JSON 另为 8 MiB,两者合计 16 MiB,二进制加完整传递元数据最多 32 MiB;内存预留预算 256 MiB。这些资源守卫不代表实测浏览器 heap,预览有限但导出不得截短。

    整次一个 60 秒时限,从来源预检、原生 File 元数据/读取、加载与 Worker 创建,一直到完整结果校验、清理和 await 后首次发布;不重置。取消、超时或输入改变撤销旧成功,不发布部分或迟到结果,可用相同原件与参数重新尝试。

    操作示例

    示例输入

    {
      "expression": "(A & B) | (A & C)",
      "dontCare": "False",
      "form": "both"
    }
    
    示例参数
    {"inputMode":"paste"}

    示例输出

    DNF: (A & B) | (A & C)
    CNF: (B | C) & A
    

    出现问题时

    保留完整原件和 dont-care 条件。修正 JSON/安全语法、变量数或深度错误;超工作量/时间预算时明确缩减函数或选一种范式并记录参数改变,不把未完成的候选当最小解。取消后使用相同原 File 或文本和参数,在新的 Worker 中完整重试。

    常见问题

    dontCare 为 true 表示输出必须 true 吗?

    不是。它表示该输入行不约束新函数。care 行是 dontCare=false,全部必须与原函数等价;dont-care 行仍留在真值表。

    DNF 和 CNF 要开两个工具吗?

    不需要。form 写 dnf、cnf 或 both,是同一工具的输出请求;both 分别完成两种范式的精确搜索与核验。

    最少项就等于最少门数吗?

    不等于。目标先最少项或子句,再最少字面量;图忠实表达选中 cover,不做多级逻辑、电路时序或最少门数优化。

    全部输入都是 dont-care 时怎么办?

    没有 care 行时使用确定策略:DNF False、CNF True,成本都是零项/子句、零字面量。非空目标由一个 mask-0 全域 cube 覆盖时成本为一项/子句、零字面量(DNF True 或 CNF False)。报告 constant 表示最终函数值。

    文档与延伸阅读

    相关工具