当前位置: 首页 > news >正文

【Algo】常见组合类数列

文章目录

  • 常见组合类数列
    • 1 常见递推/组合类数列
      • 1.1 基础递推类数列
      • 1.2 组合数学数列
      • 1.3 数论/函数类数列
      • 1.4 图论/路径问题相关数列
      • 1.5 算法和结构设计常用数列
    • 2 示例:有规律数列前 10 项对比表
    • 3 参考建议

常见组合类数列

介绍一些常见具有明显数学规律或递推关系的常见组合类数列。


1 常见递推/组合类数列

1.1 基础递推类数列

  1. Fibonacci 数列
    F(n) = F(n-1) + F(n-2), F(0)=0, F(1)=1

    • 应用:动态规划、斐波那契堆、黄金分割、兔子繁殖问题
  2. Lucas 数列
    L(n) = L(n-1) + L(n-2), L(0)=2, L(1)=1

    • 与 Fibonacci 类似,但初始值不同
  3. Tribonacci 数列
    T(n) = T(n-1) + T(n-2) + T(n-3)

    • 拓展了 Fibonacci,为三项递推
  4. Padovan 数列
    P(n) = P(n-2) + P(n-3)

    • 初始值:P(0)=P(1)=P(2)=1
  5. Pell 数列
    P(n) = 2*P(n-1) + P(n-2), P(0)=0, P(1)=1

  6. Jacobsthal 数列
    J(n) = J(n-1) + 2*J(n-2), J(0)=0, J(1)=1

  7. Tetranacci 数列
    T(n) = T(n-1) + T(n-2) + T(n-3) + T(n-4)


1.2 组合数学数列

  1. Catalan 数列
    C(n) = (2n)! / ((n+1)! * n!)

    • 应用:二叉树计数、括号匹配、堆叠问题等
  2. Bell 数列
    B(n) 表示将 n 个元素划分为若干非空子集的方法数

    • 应用:集合划分
  3. Stirling 数列(第一类 & 第二类)

    • 第一类:排列圈数计数
    • 第二类:子集划分计数
  4. Motzkin 数列
    M(n) = M(n-1) + sum_{k=0}^{n-2} M(k)*M(n-2-k)

    • 应用:无交叉弦结构、路径问题
  5. Schröder 数列(小 & 大)

    • 应用:路径计数、括号问题扩展
  6. Narayana 数列

    • 与 Catalan 有关,用于细分结构计数

1.3 数论/函数类数列

  1. Pascal 三角形(二项式系数)
    C(n, k) = n! / (k!(n-k)!)

    • 应用:组合数、概率
  2. 阶乘数列
    n! = n * (n-1)!

  3. 超级阶乘(Hyperfactorial)
    H(n) = 1^1 * 2^2 * 3^3 * ... * n^n

  4. 调和数列
    H(n) = 1 + 1/2 + 1/3 + ... + 1/n

  5. 素数数列

    • 应用:加密、筛法(如埃拉托色尼筛)
  6. 欧拉数(Eulerian Numbers)

    • 计数排列中特定升序数对的数量
  7. 伯努利数(Bernoulli Numbers)

    • 应用:泰勒展开、高阶导数公式等
  8. 高斯整数模/黎曼函数相关数列


1.4 图论/路径问题相关数列

  1. Dyck 路数列(等价于 Catalan)

  2. Lattice Path 数列(格点路径)
    C(n + m, n):从 (0, 0) 到 (n, m) 的路径数

  3. Delannoy 数列

    • 每步可以右、上或斜上走
  4. Manhattan 路径数


1.5 算法和结构设计常用数列

  1. Heap 树结构排列数(Catalan 相关)

  2. AVL 树高度组合(与 Fibonacci 相关)

  3. 哈夫曼编码树结构计数


2 示例:有规律数列前 10 项对比表

序列名定义公式(简写)前 10 项数据(从 n = 0 开始)
FibonacciF(n) = F(n-1) + F(n-2)0, 1, 1, 2, 3, 5, 8, 13, 21, 34
LucasL(n) = L(n-1) + L(n-2), L(0)=2, L(1)=12, 1, 3, 4, 7, 11, 18, 29, 47, 76
TribonacciT(n) = T(n-1) + T(n-2) + T(n-3)0, 0, 1, 1, 2, 4, 7, 13, 24, 44
TetranacciSum of last 4 terms0, 0, 0, 1, 1, 2, 4, 8, 15, 29
PellP(n) = 2·P(n-1) + P(n-2)0, 1, 2, 5, 12, 29, 70, 169, 408, 985
PadovanP(n) = P(n-2) + P(n-3)1, 1, 1, 2, 2, 3, 4, 5, 7, 9
JacobsthalJ(n) = J(n-1) + 2·J(n-2)0, 1, 1, 3, 5, 11, 21, 43, 85, 171
CatalanC(n) = (2n)! / [(n+1)! · n!]1, 1, 2, 5, 14, 42, 132, 429, 1430, 4862
BellB(n): 集合划分数1, 1, 2, 5, 15, 52, 203, 877, 4140, 21147
Stirling IIS(n, k): n 元划分为 k 非空子集见注*
Motzkin路径数计数1, 1, 2, 4, 9, 21, 51, 127, 323, 835
Schröder (小)括号路径扩展1, 2, 6, 22, 90, 394, 1806, 8558, 41586, 206098
Narayana与 Catalan 相关1, 1, 1, 2, 3, 6, 10, 20, 35, 70 (某列)
阶乘n!1, 1, 2, 6, 24, 120, 720, 5040, 40320, 362880
超级阶乘∏(i^i)1, 1, 4, 108, 27648, 86400000, …
调和数列H(n) = ∑1/k0, 1, 1.5, 1.833…, 2.083…, 2.283…, …
DelannoyD(n) = ∑ C(n,k)²1, 3, 13, 63, 321, 1683, 8989, 48639, 265729, …

  • 注解:

    • Stirling 数(第二类) 通常不是单列,而是二维表格(S(n, k))。前几行为:

      S(0,0)=1  
      S(1,1)=1  
      S(2,1)=1, S(2,2)=1  
      S(3,1)=1, S(3,2)=3, S(3,3)=1  
      

3 参考建议

  • 可查阅 OEIS(Online Encyclopedia of Integer Sequences)

  • 常见序列编号:

    • Fibonacci: A000045
    • Catalan: A000108
    • Bell: A000110
    • Motzkin: A001006

相关文章:

  • dify官方离线安装打包插件脚本,改造成ubuntu或者debain系统可用
  • 使用vtk8.2.0加载dicom图像
  • 离散傅里叶级数(DFS)的用途
  • 深入了解JavaScript当中如何确定值的类型
  • 几何引擎对比:OpenCasCade、ACIS、Parasolid和CGM
  • 讲解:Java I/O 流体系,并举例每个类的使用
  • 一站式万能邮箱:如何实现多平台邮件管理?
  • 使用绑定参数以防止SQL注入攻击
  • SpringBoot自动配置原理深度解析
  • Flutter:下拉框选择
  • 【Linux 学习计划】-- 进程程序替换
  • 硅基计划2.0 学习总结 陆 抽象类与接口
  • JavaWeb笔记
  • MySQL查询语句
  • pikachu靶场通关笔记17 CSRF关卡03-CSRF(Token)
  • [蓝桥杯]矩阵翻硬币
  • maven微服务${revision}依赖打包无法识别
  • 王自如走上了罗永浩的老路
  • 使用VTK还是OpenGL集成到qt程序里哪个好?
  • 马氏链(Markov Chain Model)模型知识详解(1)
  • 有没有做租赁的网站/厦门网络关键词排名
  • 网站搜索排名高怎么做/哈尔滨最新
  • java做网站的软件/百度指数分析平台
  • 正规的家居行业网站开发/高端网站建设报价
  • 欧美设计网站推荐/百度推广手机版
  • 风中有朵雨做的云电影网站/搜索网站