首页 > 其他分享 >组合数学基础

组合数学基础

时间:2024-02-05 19:45:59浏览次数:27  
标签:frac 组合 sum delta 基础 数学 Delta aligned underline

Finite calculus

用红色标出来的是需要特别注意的地方。

差分与下降幂

定义差分算子

\[\Delta f=f(x+1)-f(x) \]

定义 \(\mathbf{E}f=f(x+1)\)。

Thus

  • \(\Delta (u\pm v)=\Delta u\pm \Delta v\).

  • \(\Delta Cu=C\Delta u\) where \(C\) is a constant.

  • \(\Delta uv=\textcolor{red}{u\Delta v+\mathbf{E}v\Delta u}。\)对 \(m\ge 0\)

定义 \(x\) 的 \(m\) 次下降幂

\[x^{\underline{m}}=x(x-1)\cdots (x-m+1) \]

和 \(m\) 次上升幂

\[x^{\overline{m}}=x(x+1)\cdots (x+m-1) \]

(特别地,\(x^{\underline{0}}=x^{\overline{0}}=1\))

注意到 \(n!=n^{\underline{n}}=1^{\overline{n}}\)。

那么对于指数为负的情况捏?

对于下降幂,我们注意到

\[x^{\underline{m}}=(x-m+1)x^{\underline{m-1}} \]

于是

\(x^{\underline{0}}=(x+1)x^{\underline{-1}}\)

\(x^{\underline{-1}}=(x+2)x^{\underline{-2}}\)

不难推出

\(\displaystyle x^{\underline{-1}}=\frac{1}{x+1}, x^{\underline{-2}}=\frac{1}{(x+1)(x+2)}\)

于是我们可以扩充下降幂的定义

\[x^{\underline{m}}=\begin{cases} x(x-1)\cdots(x-m+1), & m\gt 0 \\ 1, & m=0 \\ \displaystyle\frac{1}{(x+1)(x+2)\cdots(x+(-m))} & m\lt 0 \end{cases} \]

注意到

\[x^{\underline{-m}}=\frac{1}{(x+m)^{\underline{m}}} \]

对于下降幂,我们有很好的性质

\[\Delta x^{\underline{n}}=nx^{\underline{n-1}} \]

证明:

\[\begin{aligned} \Delta x^{\underline{n}}&=(x+1)x(x-1)\cdots (x-n+2)-x(x-1)\cdots(x-n+1) \\ &=[x+1-(x-n+1)]x(x-1)\cdots (x-n+2) \\ &=nx^{\underline{n-1}} \end{aligned} \]

证毕。


定和式与不定和式

我们定义定和式

\[{\sum}_{a}^{b} f(x)\delta x=\sum_{i=a}^{\textcolor{red}{b-1}} f(i) \]

类比无限微积分中的

\[\int_a^b \mathrm{d}f(x)=f(b)-f(a) \]

于是我们有

\[{\sum}_{a}^{b} \Delta f(x)\delta x=f(b)-f(a) \]

类似的,可以定义不定和式。具体地,若 \(f=\Delta F\),则 \(\sum f=F+C\)(其中 \(C\) 为常量)

我们立刻可以得到

  • \(\displaystyle {\sum}_a^a f(x)\delta x=0\)

  • \(\displaystyle {\sum}_a^b f(x)\delta x=-{\sum}_b^a f(x)\delta x\)

  • \(\displaystyle {\sum}_a^b f(x)\delta x+{\sum}_b^c f(x)\delta x={\sum}_a^c f(x)\delta x\)

  • \(\displaystyle {\sum}_a^b (f(x)+g(x))\delta x={\sum}_a^b f(x)\delta x+{\sum}_a^b g(x)\delta x\)

  • \(\displaystyle {\sum}_a^b Cf(x)\delta x=C{\sum}_a^b f(x)\delta x\)

例 1

求出

\[\sum_{i=0}^{n-1} a^i \quad (a\neq 1) \]

我们有 \(\Delta a^x=a^{x+1}-a^x=(a-1)a^x\)。

于是 \(\displaystyle a^x=\Delta\left(\frac{a^x}{a-1}\right)\)。

代入可以得到

\[\sum_{i=0}^{n-1} a^i={\sum}_{0}^n \Delta\left(\frac{a^x}{a-1}\right)\delta x=\frac{a^n-1}{a-1} \]

例 2

计算

\[\sum_{i=1}^{n} i^2 \]

注意到 \(x^2=x^{\underline{2}}+x^{\underline{1}}\),而且 \(x^{\underline{2}}=\Delta \frac{1}{3}x^{\underline{3}},x^{\underline{1}}=\Delta \frac{1}{2}x^{\underline{2}}\)。

于是

\[\begin{aligned} \sum_{i=1}^{n} i^2&=\sum_{i=0}^{n} (i^{\underline{2}}+i^{\underline{1}})\\ &={\sum}_{0}^{n+1} (\Delta \frac{1}{3}x^{\underline{3}}+\Delta \frac{1}{2}x^{\underline{2}}) \\ &=\left[\frac{1}{3}x^{\underline{3}}+\frac{1}{2}x^{\underline{2}}\right]\bigg|_{0}^{n+1}\\ &=\frac{1}{3}(n+1)(n)(n-1)+\frac{1}{2}n(n+1)\\ &=\frac{1}{6}n(n+1)(2n+1) \end{aligned} \]

P1625 求和

求出

\[\sum_{i=1}^n \frac{1}{\prod_{j=i}^{i+m-1}j} \]

其中 \(n+m\leq 500,n\gt 0,m\gt 1\)。

\[\begin{aligned} \sum_{i=1}^n \frac{1}{\prod_{j=i}^{i+m-1}j}&= \sum_{i=0}^{n-1} \frac{1}{\prod_{j=i+1}^{i+m}j} \\ &=\sum_{i=0}^{n-1} \frac{1}{(i+m)(i+m-1)\cdots (i+1)} \\ &=\sum_{i=0}^{n-1} i^{\underline{-m}} \\ &={\sum}_0^n \Delta\left(\frac{x^{\underline{1-m}}}{1-m}\right)\delta x \\ &=\frac{n^{\underline{1-m}}-0^{\underline{1-m}}}{1-m} \\ &=\frac{\frac{1}{(m-1)(m-2)\cdots 1}-\frac{1}{(n+1)(n+2)\cdots (n+m-1)}}{m-1} \\ &=\frac{\frac{(n-m+1)(n-m)\cdots m}{(n+m-1)!}-\frac{n!}{(n+m-1)!}}{m-1} \\ &=\frac{(n+m-1)^{\underline{n}}-n!}{(m-1)(n+m-1)!} \end{aligned} \]

例 3

求证:

\[\sum_{i=0}^{n} {i\choose m}={n+1 \choose m+1} \]

(上指标求和)

我们有 \(\displaystyle {n\choose k}=\frac{n^{\underline{k}}}{k!}\)

于是

\[\begin{aligned} \sum_{i=0}^n {i\choose m}&=\sum_{i=0}^{n}\frac{i^{\underline{m}}}{m!} \\ &=\frac{1}{m!}{\sum}_0^{n+1} \Delta \frac{x^{\underline{m+1}}}{m+1} \delta x \\ &=\frac{1}{m!}\frac{(n+1)^{\underline{m+1}}}{m+1} \\ &=\frac{(n+1)^{\underline{m+1}}}{(m+1)}! \\ &={n+1\choose m+1} \end{aligned} \]

现在将有限和无限积分表对照如下。

$f $ \(\sum f\) \(f\) \(\displaystyle \int f\)
\(x^{\underline{n}}\) \(\displaystyle \frac{x^{\underline{n+1}}}{n+1}\) \(x^n\) \(\displaystyle \frac{x^{n+1}}{n+1}\)
\(2^x\) \(2^x\) \(\mathrm{e}^x\) \(\mathrm{e}^x\)
\(a^x\) \(\displaystyle \frac{a^x}{a-1}\) \(a^x\) \(a^x\ln a\)

Stirling 数与下降幂

我们知道,下降幂在有限微积分中担当起了无限微积分中幂函数的职责。但是我们常见的是幂函数,我们需要将幂函数转为下降幂。

我们有

\[x^n=\sum_{k=0}^n {n\brace k} x^{\underline{k}} \]

\[x^{\underline{n}}=\sum_{k=0}^{n} {n\brack k}(-1)^{n-k} x^k \]

其中 \(\displaystyle {n\brace k}\) 表示第二类 Stirling 数,即将 \(n\) 个元素分进 \(k\) 个集合(不计集合的顺序)的方案数,\(\displaystyle {n\brack k}\) 表示第一类 Stirling 数,即将 \(n\) 个元素分进 \(k\) 个环里(不计环的顺序)的方案数。

由此我们得到 \(1\sim n\) 的 \(k\) 次幂和的公式。

\[\begin{aligned} \sum_{i=0}^{n} i^k&=\sum_{i=0}^n\sum_{j=0}^{k}{k\brace j} i^{\underline{j}} \\ &=\sum_{j=0}^k {k\brace j}\sum_{i=0}^{n} i^{\underline{j}} \\ &=\sum_{j=0}^k {k\brace j}{\sum}_{0}^{n+1} \Delta \frac{x^{\underline{j+1}}}{j+1} \delta x\\ &=\sum_{j=0}^k {k\brace j}\frac{(n+1)^{\underline{j+1}}}{j+1} \end{aligned} \]

P4948 数列求和

\[\sum_{i=1}^n i^k a^i \]

其中 \(n\leq 10^{18}\),\(k\leq 2\times 10^3\)。

\[\begin{aligned} \sum_{i=1}^n i^k a^i&=\sum_{i=1}^na^i\sum_{j=0}^k {k\brace j}i^{\underline{j}} \\ &=\sum_{j=0}^{k} {k\brace j}\sum_{i=1}^n a^ii^{\underline{j}} \\ &=\sum_{j=0}^{k} {k\brace j}{\sum}_1^{n+1}a^xx^{\underline{j}}\delta x \end{aligned} \]

进行分类讨论。

  • \(a=1\)

\[\begin{aligned} &=\sum_{j=0}^{k} {k\brace j}{\sum}_1^{n+1}x^{\underline{j}}\delta x \\ &=\sum_{j=0}^k {k\brace j}\frac{(n+1)^{\underline{j}}-1^{\underline{j}}}{j+1} \end{aligned} \]

预处理 \(\Theta(k^2)\) 或 \(\Theta(k\log k)\),递推计算是 \(\Theta(k)\) 的。

  • \(a\neq 1\)

我们有

\[\Delta uv=u\Delta v+\mathbf{E}v\Delta u \]

两边同时求和,得

\[uv=\sum u\Delta v\delta x+\sum\mathbf{E}v\Delta u\delta x \]

\[\sum u\Delta v\delta x=uv-\sum\mathbf{E}v\Delta u\delta x \]

考虑求出 \(a^xx^{\underline{j}}\) 的“原和式”(不定和式)。我们不妨令 \(u=a^x\),\(\Delta v=x^{\underline{j}}\)(则 \(v=\dfrac{x^{\underline{j+1}}}{j+1}\))

于是 \(\sum a^xx^j\delta x=\dfrac{a^xx^{\underline{j+1}}}{j+1}-\sum (x+1)^{\underline{j}}(a-1)a^x\delta x\)

好像不可做。如果令 \(u=x^{\underline{j}}\),\(\Delta v=a^x\)(则 \(v=\dfrac{a^x}{a-1}\))呢?

代入得到

\(\sum a^xx^j\delta x=\dfrac{a^xx^{\underline{j}}}{a-1}-\sum \dfrac{a^{x+1}}{a-1}jx^{\underline{j-1}}\delta x\)

也就是说

\[{\sum}_0^{n+1} a^xx^j=\frac{a^xx^j}{a-1}\bigg|_{0}^{n+1}-\frac{j\cdot a}{a-1}{\sum}_0^{n+1} a^xx^{\underline{j-1}}\delta x \]

边界为 \(j=0\) 时,\(\sum a^xx^j\delta x=\sum a^x\delta x=\dfrac{a^x}{a-1}\)。

预处理 \(\Theta(k^2)\) 或 \(\Theta(k\log k)\),递推计算是 \(\Theta(k)\) 的。

综上,我们在 \(\Theta(k^2)\) 或 \(\Theta(k\log k)\) 的复杂度内解决了本题。


类比于无限微积分中高阶导数的概念,我们在有限微积分中也有高阶差分。

我们可以定义 \(f\) 的 \(n\) 阶差分

\[\Delta^n f= \begin{cases} f, & n=0 \\ \Delta(\Delta^{n-1} f) & n\gt 0 \end{cases} \]

我们注意到

\[\mathbf{E}f=f(x+1) \]

\[\Delta f=f(x+1)-f(x) \]

所以我们不难得到 \(\Delta=\mathbf{E}-1\)。

于是我们有

\[\Delta^n f=(\mathbf{E}-1)^n f=\sum_{k=0}^n {n\choose k}(-1)^{n-k}\mathbf{E}^k f \]

\(\mathbf{E}^k\) 类似 \(\Delta^k\) 递归地定义。

P5907 数列求和加强版 / SPOJ MOON4

\[\sum_{i=1}^n i^k a^i \]

其中 \(\boldsymbol{k\leq 10^7}\)。

设 \(\displaystyle f(n)={\sum}_0^n x^ka^x\delta x\),答案即为 \(f(n+1)-f(1)\)。

注意到在普通版中我们有

\[\begin{aligned} \sum a^xx^k\delta x&=\dfrac{\textcolor{red}{a^x}x^{\underline{k}}}{a-1}-\frac{a\cdot k}{a-1}\textcolor{red}{a^{x}}\sum x^{\underline{k-1}}\delta x \\ &=a^x\left(\frac{x^{\underline{k}}}{a-1}-\frac{a\cdot k}{a-1}\sum x^{\underline{k-1}}\right) \end{aligned} \]

\(a^x\) 右边的那一包东西显然是一个 \(k\) 次多项式,不妨设为 \(g(x)\)。则我们有

\[{\sum}_l^r a^xx^k\delta x=a^rg(r)-a^lg(l) \]

\[f(n)=a^ng(n)-a^0g(0) \]

如果我们能知道 \(g(0),g(1),\cdots,g(n)\) 的点值,就不难应用 Lagrange 插值法在 \(\Theta(k)\) 内求出 \(g(n+1)\)。那么问题转化为如何求 \(g(0),g(1),\cdots,g(n)\)。

我们考虑到

\[f(n)=a^ng(n)-a^0g(0) \]

\[g(n)=\frac{f(n)+g(0)}{a^{n}} \]

\(f(0),f(1),\cdots,f(k)\) 可以 \(\Theta(k)\) 递推。那么现在的当务之急就是求出 \(g(0)\) 了。

我们知道 \(\deg g=k\),这意味着 \(\Delta^{k+1} g=0\)。

于是

\[\sum_{i=0}^{k+1}{k+1\choose i}(-1)^{k+1-i}\mathbf{E}^{i}g(0)=0 \\ \sum_{i=0}^{k+1}{k+1\choose i}(-1)^{k+1-i}g(i)=0 \\ \sum_{i=0}^{k+1}{k+1\choose i}(-1)^{k+1-i}a^{-i}[f(i)+g(0)]=0 \\ \sum_{i=0}^{k+1}{k+1\choose i}(-1)^{k+1-i}a^{-i}f(i)+\sum_{i=0}^{k+1}{k+1\choose i}(-1)^{k+1-i}a^{-i}g(0)=0 \\ \sum_{i=0}^{k+1}{k+1\choose i}(-1)^{k+1-i}a^{-i}f(i)+(a^{-1}-1)^{k+1}g(0)=0 \\ g(0)=-\frac{1}{a^{-1}-1}\sum_{i=0}^{k+1}{k+1\choose i}(-1)^{k+1-i}a^{-i}f(i) \]

不难 \(\Theta(k)\) 求出。综上我们在 \(\Theta(k)\) 的时间复杂度内解决了本题。

P5349 幂

给定 \(m\) 次多项式 \(f\) 和有理数 \(r\in (0,1)\),求

\[\sum_{n=0}^{+\infty} f(n)r^n \]

模 \(998,422,353\)。其中 \(m\leq 10^5\)。多项式以系数形式给出。

考虑对于单项式怎么做。

也就是求

\[\begin{aligned} \sum_{n=0}^{+\infty} n^kr^n &= \dfrac{r^nn^{\underline{k}}}{r-1}-\sum \dfrac{r^{n+1}}{r-1}kn^{\underline{k-1}}\delta \end{aligned} \]

参考资料

有限微积分 - wangrx

标签:frac,组合,sum,delta,基础,数学,Delta,aligned,underline
From: https://www.cnblogs.com/Starrykiller/p/18008708/basic-combinatorics

相关文章

  • 2024牛客寒假算法基础集训营2(小白)
    A.TokitsukazeandBraceletCode:#include<bits/stdc++.h>usingnamespacestd;intmain(){intt;cin>>t;while(t--){inta,b,c,cnt=0;cin>>a>>b>>c;if(a>=150)cnt++;if(a>=200)......
  • 第 1 章 Python 爬虫概念与 Web 基础
    第1章Python爬虫概念与Web基础1.1爬虫概念1.1.1什么是爬虫爬虫,即网络爬虫,又称网络蜘蛛(WebSpider),是一种按照一定规则,用来自动浏览或抓取万维网数据的程序。可以把爬虫程序看成一个机器人,它的功能就是模拟人的行为去访问各种站点,或者带回一些与站点相关的信息。它可以2......
  • 2024牛客寒假算法基础集训营2
    题目链接A.模拟#include<bits/stdc++.h>usingnamespacestd;#defineintlonglongconstintN=1e5+10;voidsolve(){intn;cin>>n;while(n--){inta,b,c;cin>>a>>b>>c;intans=0;if(a==150)ans+=1......
  • H3C vlan基础配置实验
    H3Cvlan基础配置实验实验拓扑实验需求1、按图示为PC配置IP地址2、SW1和SW2上分别创建vlan10和vlan20,要求PC1和PC3属于vlan10,PC2和PC4属于vlan203、SW1和SW2相连的接口配置为trunk类型,允许vlan10和vlan20通过4、测试效果,同一vlan的PC可以互通,不同vlan的PC无法互通实验步......
  • H3C vlan基础配置实验
    H3Cvlan基础配置实验实验拓扑实验需求1、按图示为PC配置IP地址2、SW1和SW2上分别创建vlan10和vlan20,要求PC1和PC3属于vlan10,PC2和PC4属于vlan203、SW1和SW2相连的接口配置为trunk类型,允许vlan10和vlan20通过4、测试效果,同一vlan的PC可以互通,不同vlan的PC无法互通实验步......
  • RK3568驱动指南|驱动基础进阶篇-进阶7 向系统中添加一个系统调用
      瑞芯微RK3568芯片是一款定位中高端的通用型SOC,采用22nm制程工艺,搭载一颗四核Cortex-A55处理器和MaliG522EE图形处理器。RK3568支持4K解码和1080P编码,支持SATA/PCIE/USB3.0外围接口。RK3568内置独立NPU,可用于轻量级人工智能应用。RK3568支持安卓11和linux系统,主......
  • 【数学】求导
    1.导数简介1.1导数的定义当函数\(y=f(x)\)的自变量\(x\)在一点\(x_0\)上产生一个增量\(\Deltax\)时,函数输出值的增量\(\Deltay\)与自变量增量\(\Deltax\)的比值在\(\Deltax\)趋于\(0\)时的极限\(a\)如果存在,\(a\)即为在\(x_0\)处的导数,记作\(f^{'}(x......
  • 理解日志基础:使用Python进行有效的日志记录
    源码分享https://docs.qq.com/sheet/DUHNQdlRUVUp5Vll2?tab=BB08J2日志记录是任何软件开发过程中的一个基本组成部分,尤其是在爬虫开发中。有效的日志记录策略可以帮助开发者监控爬虫的行为,诊断问题,以及追踪爬虫的性能。Python的logging模块提供了一套强大的日志记录工具,它可以帮助......
  • 17、电话号码的数字组合
     classSolution{privatefinalMap<Character,String>phoneMap=newHashMap<Character,String>();publicvoidinit(){phoneMap.put('2',"abc");phoneMap.put('3',"def");ph......
  • VMware vSphere Foundation (VVF) - 企业级工作负载平台组合解决方案
    VMwarevSphereFoundation(VVF)-企业级工作负载平台组合解决方案TheEnterpriseWorkloadPlatform请访问原文链接:https://sysin.org/blog/vmware-vsphere-foundation/,查看最新版。原创作品,转载请保留出处。作者主页:sysin.orgVMwarebyBroadcom产品组合:VMwareCloud......