1.斐波那契数列

P.S.:这里首项下标为 1

递推式:\[F_i=F_{i-1}+F_{i-2},F_1=F_2=1\]

性质:
\(1.\sum^{n}_{i=1}F_{i}=F_{n+2}-1\)

\(2.\sum^{n}_{i=1}F_i^2=F_n\ F_{n+1}\)

\(3.\sum_{i=1}^{n}i\ F_i=n\ F_{n+2}-F_{n+3}+2\)

\(4.F_{n+m}=F_n\ F_{m-1}+F_{m}\ F_{n+1}\)

\(5.F_{2n}/F_{n}=F_{n-1}+F_{n+1}\)

\(6.gcd(F_i,F_{i+1})=1\)

\(7.gcd(F_n,F_m)=F_{gcd(n,m)}\)

\(8.\)斐波那契数列的第n+2项代表了集合\({1,2,...n}\)中所有不包含相邻正整数的子集的个数.


2.卡特兰数

P.S. 这里首项下标为0

递推关系:
\[C_n=\sum_{i=0}^{n-1} C_iC_{n-i-1},C_0=C_1=1\]

常用递推关系:
\[C_n=\frac{C_{n-1}*(4*n-2)}{n+1}\]

另类递推式:
\[C_n=\frac{2n\choose n}{n+1}\]
\[C_n={2n \choose n}-{ 2n \choose n-1}\]

应用:

  1. n 个元素的不同的出栈序列个数
  2. n 个元素的排列中最长下降子序列不超过 2 的排列个数
  3. 凸 n+2 边形的三角形划分数
  4. 球迷购票问题
  5. n 对括号正确匹配的排列方案数
  6. 链乘的括号化方案数

3.斯特林数

1.第一类斯特林数

含义: n 个人坐 m 张圆桌的方案数

递推式:
\[
\left [ \begin{matrix}n \\ m\end{matrix}\right ]=\left [ \begin{matrix}n-1 \\ m\end{matrix}\right ]*(n-1)+\left [ \begin{matrix}n-1 \\ m-1\end{matrix}\right ]\]

理解:新来一个人的时候,要么坐在前面 n-1 个人的某一边(坐在一个地方必定同时是一个人的左边和一个人的右边) , 要么自己新坐一桌

有符号与无符号第一类斯特林数的关系:
\[\large (-1)^{n-m}\left [ \begin{matrix}n \\ m\end{matrix}\right ]_u =\left [ \begin{matrix}n \\ m\end{matrix}\right ]_s\]

1.无符号第一类斯特林数与上升幂/下降幂的关系

考虑:
\[x^{\overline n}=x*(x+1)*(x+2)*(x+3)*...(x+n-1)\]
从生成函数方面考虑其含义,是从 \([0,n-1]\) 中选出任意多个数乘起来的和,其中第 \(m\) 次方项系数表示选了 \(n-m\) 个数(剩下 m 个数)时的和 , 特别的 , 一个数也不选乘积为 1

设\(f(n,m)\)表示从 \([1,n]\) 里面选数 , 剩下 \(m\) 个数时的和,容易得到递推式:
\[f(n,m)=f(n-1,m)+f(n,m)*(n-1)\]
看 \(n-1\) 选不选就能够得出来 , 边界: \(f(0,0)=1\)
这个递推式和第一类斯特林数的式子长的一模一样,所以: \(f(n,m)=\left [ \begin{matrix}n \\ m\end{matrix}\right ]_u\)(无符号)

那么展开上升幂得到:
\[\large x^{\overline n}=\sum_{i=0}^n \left [ \begin{matrix}n \\ i\end{matrix}\right ]_ux^i\]
是不是和二项式定理很像

对于下降幂:
似乎可以理解为通过上升幂容斥得来:
\[\large x^{\underline n}=\sum_{i=0}^n (-1)^{n-i}\left [ \begin{matrix}n \\ i\end{matrix}\right ]_u x^i\]

其实也可以直接写成有符号第一类斯特林数:
\[\large x^{\underline n}=\sum_{i=0}^n \left [ \begin{matrix}n \\ i\end{matrix}\right ]_s x^i\]


2.第二类斯特林数

含义: 把 n 个有标号的球放入 m 个无标号的盒子里 , 不允许空盒的方案数

递推式:
\[\left \{ \begin{matrix}n \\ m\end{matrix}\right \} =m*\left \{ \begin{matrix}n-1 \\ m\end{matrix}\right \} +\left \{ \begin{matrix}n-1 \\ m-1\end{matrix}\right \} \]

理解: 新来一个球 , 要么放入原有的盒子,要么放入一个新的盒子

常用公式(推导略):

1.通项公式:
\[\large \left \{ \begin{matrix}n \\ m\end{matrix}\right \} =\frac{1}{m!}*\sum_{i=0}^m (-1)^i*{m\choose i}*(m-i)^n\]

拆开组合数可以发现是卷积的形式,可以用 \(NTT\) 预处理 \(n\)个球的时候的第二类斯特林数

2.斯特林展开

\[x^n=\sum_{j=0}^x {x \choose j}*(j!)*\left \{ \begin{matrix}n \\ j\end{matrix}\right \}\]

把第二类斯特林数通项公式用二项式反演定理反演回去即可
由于当\(j>n\)时,原式子的贡献为0,所以其实只用枚举 \(j\) 到 \(min(n,x)\)

可以写成下降幂的形式:
\[x^n=\sum_{j=0}^x \left \{ \begin{matrix}n \\ j\end{matrix}\right \}x^{\underline j} \]
当 \(j>x\) 时 下降幂变为 0 ,所以可直接写成:
\[\large x^n=\sum_{i=0}^n \left \{ \begin{matrix}n \\ i\end{matrix}\right \}x^{\underline i} \]
这就很优美了


4.贝尔数

含义: 把 1 \(\sim\) n 拆分成若干无序集合的方案数

bell数其实是第二类斯特林数的前缀和 , 可以理解为把 n 个有标号的球放入 n 个无标号的盒子里 , 允许空盒的方案数

递推式:
\[B_{n+1}=\sum_{i=0}^{n}{n\choose i}B_i,B_0=1\]

性质:

  1. 若 \(p\) 是任意质数: \(B_{n+p}\equiv B_n+B_{n+1} \ (mod \ p)\)

5.伯努利数

满足:
\[B_0=1\]
\[\sum_{i=0}^n{n+1\choose i}B_i=0\]
化简移项
\[B_n=-\frac{1}{n+1}\sum_{i=0}^{n-1} {n+1\choose i}B_i\]

其生成函数为:
\[G_e(x)=\frac{x}{e^x-1}\]
\(e^x\)泰勒展开后多项式求逆在\(O(nlogn)\)的复杂度内求出前\(n\)项

可以用来求自然幂数和:
\[S_k(n)=\sum_{i=1}^n i^k=\frac{1}{k+1}\sum_{i=1}^{k+1} {k+1\choose i}{B_{k+1-i}}(n+1)^i\]

(不定期更新...)

常用数列总结&性质记录的更多相关文章

  1. D - Frog and Portal (利用斐波那契数列的性质)

    题目链接:https://cn.vjudge.net/contest/270201#problem/D 具体思路:利用斐波那契数列的性质,斐波那契数列可以构成任何正整数,所以按照顺序减下去肯定能减到0 ...

  2. fibonacci数列的性质和实现方法

    fibonacci数列的性质和实现方法 1.gcd(fib(n),fib(m))=fib(gcd(n,m)) 证明:可以通过反证法先证fibonacci数列的任意相邻两项一定互素,然后可证n>m ...

  3. Fibonacci 数列和 Lucas 数列的性质、推论及其证明

    Fibonacci 数列 设f(x)=1,x∈{1,2}=f(x−1)+f(x−2),x∈[3,∞)\begin{aligned}f(x)&=1,\quad\quad\quad\quad\qu ...

  4. CentOS7开放端口以及常用的使用命令记录整理

    CentOS7与以前常用的CentOS6还是有一些不同之处的,比如在设置开放端口的时候稍许有些不同,常用的iptables命令已经被firewalld代替.这几天正好有在CentOS7系统中玩Seaf ...

  5. Catalan 数列的性质及其应用(转载)

    转自:http://lanqi.org/skills/10939/ 卡特兰数 — 计数的映射方法的伟大胜利 发表于2015年11月8日由意琦行 卡特兰(Catalan)数来源于卡特兰解决凸$n+2$边 ...

  6. 【redis】redis常用命令及操作记录

    redis-cli是Redis命令行界面,可以向Redis发送命令,并直接从终端读取服务器发送的回复. 它有两种主要模式:一种交互模式,其中有一个REPL(read eval print loop), ...

  7. codeforce 227E 矩阵快速幂求斐波那契+N个连续数求最大公约数+斐波那契数列的性质

    E. Anniversary time limit per test2 seconds memory limit per test256 megabytes inputstandard input o ...

  8. Less常用变量与方法记录

    需求:仅记录Lsee常用变量与方法定义,便于使用.-- @color: #000; @title-color: #000; @bg-color: #fff; @small-font: 12px; @l ...

  9. Linux常用命令说明(记录自己Linux命令使用情况,后续会持续更新)

    首次记录时间--20170602 感觉自己Linux命令使用掌握的情况非常差,今天先记录当前会的几个. 1#cd(change directory) 切换工作目录(或者叫修改当前目录) eg. cd ...

随机推荐

  1. 部署php程序报错:站点已关闭

    场景: 之前把公司线上的php源码包拿到笔记本的虚拟机上测试部署,部署完成后通过浏览器访问总是出现站点已关闭 原因:把线上php程序配置文件config.php里面的数据库连接信息改成了笔记本虚拟机的 ...

  2. AWSome Day简介

    AWSome Day是什么? 它是一场为时一天.结合教育与技术新知的云计算技术免费研讨会.是面向所有开发人员.IT技术人员.或技术/业务领域决策者必备的基础云计算课程.AWS专业级讲师将在现场带领您从 ...

  3. 逻辑回归2-scikit-learn参数介绍

    1.1     scikit-learn参数介绍 1.1.1  导入 from sklearn.linear_model import LogisticRegression 1.1.2  版本 sci ...

  4. python-爬取糗事百科热图

    此次运用requests和beautifulSoup爬取糗事百科热图,常用的网络库有:urllib,urllib3,requests,选取其中之一就行了:HTML/XML解析器有:lxml,Beaut ...

  5. 微信小程序开发(一)----- 基础知识

    1.什么是微信小程序 概念:小程序是一种不需要下载安装即可使用的应用,它实现了应用“触手可及”的梦想,用户扫一扫或者搜一下即可打开应用,体现了“用完即走”的理念,用户不需要关心是否安装太多应用的问题, ...

  6. python 并发编程 多线程 守护线程

    做完工作这个进程就应该被销毁 单线程情况: 一个进程 ,默认有一个主线程 ,这个主线程执行完代码后 ,就应该自动销毁.然后进程也销毁. 多线程情况: 主线程代表进程结束 一个进程可以开多个线程,默认开 ...

  7. excel常用公式--计算统计类

    Count/Countif/Countifs:条件计数. 注:count只能对数值进行统计 sum/sumif/sumifs:条件求和.   Average/Averageifs:  返回参数的平均值 ...

  8. linux查看cd/dvd驱动器的设备信息

    在linux下,如何来查看系统里的CD-ROM或者DVD驱动器的设备名呢? 你可以输入下面的命令来查看当前系统下的光盘驱动器信息: 1.使用dmesg命令来查看当前的硬件是否被linux内核正确的识别 ...

  9. 再谈PG索引-存储架构

    1.索引的基本架构 PG的索引是B+树,B+树是为磁盘或其他直接存取辅助设备而设计的一种平衡查找树,在B+树中,所有记录节点都是按键值的大小顺序存放在同一层的叶节点中,各叶节点指针进行连接: meta ...

  10. springboot笔记-文件上传

    使用 Spring Boot 和 Thymeleaf 上传文件 Spring Boot 利用 MultipartFile 的特性来接收和处理上传的文件,本示例前端页面使用 Thymeleaf 来处理. ...