You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于OEIS A000157序列项的技术问询:布尔函数数量疑问

理清OEIS A000157:别把“所有布尔函数”和“语义等价布尔函数”搞混啦

嘿,我完全懂你的困惑——你踩中了布尔函数计数里的经典坑:OEIS A000157统计的是「所有可能的布尔函数(纯输入输出映射)」,而你查到的「语义不同的布尔函数」是逻辑等价类的数量,这俩根本不是一回事。

先把核心区别掰碎了说:

  • 对于A000157的定义:它完全不考虑逻辑等价性,只算从n个布尔变量的所有输入组合(一共2^n种)到{0,1}的所有可能映射。每一种不同的输入输出对应关系,就算一个独立的布尔函数——哪怕两个函数能通过变量重命名、德摩根律转换这类操作变成一模一样的,在这个序列里也会被当成两个不同的项。
    举个直观的例子:n=2时,总共有2(22)=16个布尔函数,这就是A000157里的第3项(序列从n=0开始计数:n=0是1,n=1是2,n=2是16)。

  • 而你查到的「语义不同的布尔函数」,是把逻辑上等价的函数归为同一类后的计数。比如两个函数如果能通过变量重排、取反输入/输出等操作互相转化,就算同一个语义类。这个对应的是另一个OEIS序列,n=2时这个数是7,和A000157的16自然对不上,这就是你觉得不匹配的根源。

再解决你关于逻辑运算符的疑问:
其实A000157的计数和你用什么逻辑运算符完全没关系——因为所有布尔函数都可以用一个逻辑完备集(比如与、或、非的组合,甚至单独的与非/或非运算符)来表示。这个序列的核心是「所有可能的输入输出映射」,不管你用什么运算符实现它,只要映射不同,就算不同的函数。

举个极小的例子:n=1时,有2个布尔函数:

  1. 输出和输入完全一致:f(x) = x
  2. 输出是输入的取反:f(x) = ¬x
    这俩就是A000157里n=1的项2。这时候语义等价类的数量也是2,所以数值一样,但n≥2后,等价类数量会远小于总函数数,差距就明显了。

最后再确认下A000157的前几项(n从0开始):

  • n=0: 1
  • n=1: 2
  • n=2: 16
  • n=3: 256
  • n=4: 65536

这些数值都是严格遵循公式a(n) = 2^(2^n)(n≥1时)来的,和语义等价性完全无关。

内容的提问来源于stack exchange,提问作者Mr. Xcoder

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.19 08:24:33