普通生成函数学习笔记

news/2024/10/6 3:31:43/文章来源:https://www.cnblogs.com/DycBlog/p/18287181

普通生成函数学习笔记

定义

已知一个序列 \(a\),可以是有限项也可以是无限项,定义其生成函数 \(F(x)\)

\[F(x)=\sum a_ix^i \]

作用

生成函数本质是一个多项式,所以可以进行多项式卷积,方便处理序列问题。假设序列 \(a\) 的生成函数是 \(F(x)\),序列 \(b\) 的生成函数是 \(G(x)\),有

\[F(x)G(x)=\sum x^i\sum_{j=0}^i a_jb_{i-j} \]

封闭形式

封闭操作可以让生成函数更加易于化简,也就是将无限项的多项式封闭为有限项。有几种比较常见的封闭形式:

  1. \(\lang\binom{n-1}{0},\binom{n}{1},\binom{n+1}{2},\cdots\rang=\frac{1}{(1-x)^n}\)

    这本质上是二项式定理的负数形式(也叫做牛顿二项式定理):

    \[(1-x)^{-n}=\sum\binom{n-1+i}{i}x^i \]

  2. \(\lang1,n,n^2,\cdots\rang=\frac{1}{1-nx}\)

  3. \(\sum x^{ni}=\sum (x^n)^i=\frac{1}{1-x^n}\)

  4. \(\lang\binom{n}{0},\binom{n}{1},\binom{n}{2},\cdots\rang=(1+x)^n\)

    本质上就是二项式定理。

  5. 存在前导零

    \(\lang0,0,\cdots,0,a_0,a_1,a_2,\cdots\rang\)。假设前面有 \(n\)\(0\),这种情况先把 \(0\) 后面的结果算出来,再乘上一个 \(x^n\) 即可。

  6. 其他形式

    对于其他形式的序列,总能将其拆成多个生成函数的和或差,然后便可以求解。

展开形式

\([x^n]F(x)\) 表示 \(x^n\) 的系数。

假设我们成功求出了 \(F(x)\) 的封闭形式,显然无法直接求出 \([x^n]F(x)\),此时需要我们将封闭形式展开。本质上是封闭的逆过程,一般通过设关于 \(F(x)\) 的方程然后求解。

下面以最经典的斐波那契数列的通项公式为例。

\(F(x)=\sum f_ix^i\),其中 \(f_i\) 为斐波那契数列(\(f_0=0,f_1=1,f_n=f_{n-1}+f_{n-2}(n\ge 2)\))。

那么有

\[F(x)=xF(x)+x^2F(x)+x \]

\(F(x)\) 的封闭形式为 \(\frac{x}{1-x-x^2}\)。发现不属于罗列出的特殊情况。有两种方式进行展开:

  1. \(x^2+x\) 看作整体

    那么相当于前面有一个前导零,那么

    \[\begin{aligned}F(x)&=\sum x(x^2+x)^{i}\\&=\sum\sum_{j=0}^{i}x\binom{i}{j}x^{2j}x^{i-j}\\&=\sum\sum_{j=0}^{i}\binom{i}{j}x^{i+j+1}\\&=\sum x^{i}\sum_{j=0}^{i}\binom{i-j-1}{j}\end{aligned} \]

    于是我们得到 \(f_i=\sum_{j=0}^{i}\binom{i-j-1}{j}\),但这并不是我们熟知的形式。

  2. 考虑将此形式转换成两个朴素形式相加

    即写作

    \[\frac{x}{1-x-x^2}=\frac{A}{1-ax}+\frac{B}{1-bx} \]

    接着求解待定系数

    \[\begin{aligned}\frac{x}{1-x-x^2}&=\frac{A}{1-ax}+\frac{B}{1-bx}\\&=\frac{A(1-bx)+B(1-ax)}{(1-ax)(1-bx)}\\&=\frac{(A+B)-(Ab+aB)x}{1-(a+b)x+abx^2}\end{aligned} \]

    接着解方程

    \[\left\{\begin{matrix}A+B=0\\Ab+aB=-1\\a+b=1\\ab=-1\end{matrix}\right . \]

    解得

    \[\left\{\begin{matrix}A=\frac{1}{\sqrt{5}}\\B=-\frac{1}{\sqrt{5}}\\a=\frac{1+\sqrt{5}}{2}\\b=\frac{1-\sqrt{5}}{2}\end{matrix}\right. \]

    接着回代,所以有

    \[\begin{aligned}F(x)&=\frac{x}{1-x-x^2}\\&=\frac{\frac{1}{\sqrt{5}}}{1-\frac{1+\sqrt{5}}{2}x}+\frac{-\frac{1}{\sqrt{5}}}{1-\frac{1-\sqrt{5}}{2}x}\\&=\frac{1}{\sqrt{5}}\sum (\frac{1+\sqrt{5}}{2}x)^i-\frac{1}{\sqrt{5}}\sum(\frac{1-\sqrt{5}}{2}x)^i\\&=\sum x^i\frac{(\frac{1+\sqrt{5}}{2})^i-(\frac{1-\sqrt{5}}{2})^i}{\sqrt{5}}\end{aligned} \]

    于是我们得到 \(f_i=\frac{(\frac{1+\sqrt{5}}{2})^i-(\frac{1-\sqrt{5}}{2})^i}{\sqrt{5}}\)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/739291.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

FFmpeg开发笔记(三十五)Windows环境给FFmpeg集成libsrt

​《FFmpeg开发实战:从零基础到短视频上线》一书的“10.2 FFmpeg推流和拉流”提到直播行业存在RTSP和RTMP两种常见的流媒体协议。除此以外,还有比较两种比较新的流媒体协议,分别是SRT和RIST。 其中SRT全称为Secure Reliable Transport,中文叫做安全可靠传输协议。RIST全称…

java学习进度

(1)通过视频学习了解了java基本概述 (2)成功下载了Eclipse,并搭建java环境 (3)使用Eclipse运行"hello world"程序 代码如下: package hello; public class helloworld { public static void main(String[] args) {// TODO Auto-generated method stubSystem.…

横截面交易策略:概念与示例

更多精彩内容,欢迎关注公众号:数量技术宅,也可添加技术宅个人微信号:sljsz01,与我交流。 什么是横截面策略 横截面交易策略(Cross-Sectional Trading Strategy)是一种金融市场上的交易策略,它是基于不同资产之间的相对价值或其他因子的差异来进行投资决策。这种策略的核…

Spark快速大数据分析PDF下载读书分享推荐

《Spark 快速大数据分析》是一本为 Spark 初学者准备的书,它没有过多深入实现细节,而是更多关注上层用户的具体用法。不过,本书绝不仅仅限于 Spark 的用法,它对 Spark 的核心概念和基本原理也有较为全面的介绍,让读者能够知其然且知其所以然。 Spark快速大数据分析PDF下载…

IP核:XDMA学习

知识: XDMA效率没有RIFFA高,最高似乎只支持1288位宽; 输出的用户时钟是250MHZ; IP核配置: 参考: https://docs.amd.com/r/zh-CN/pg195-pcie-dma/ 具体:重要:PCIe:BARs标签页该标签页主要用于配置 BAR,所谓的使能和配置各接口 interface,其实质是配置不同的 BAR,首先介…

【模块三】Python高级

面向对象基础 类和对象 概念 面向对象编程(Object-Oriented Programming,简称OOP)是一种编程范式。 类是人们抽象出来的一个概念,所有拥有相同属性和功能的事物称为一个类;而拥有相同属性和功能的具体事物则成为这个类的实例对象。 面向对象编程提供了一种从现实世界中抽象…

大气热力学(5)——绝热过程

本篇文章源自我在 2021 年暑假自学大气物理相关知识时手写的笔记,现转化为电子版本以作存档。相较于手写笔记,电子版的部分内容有补充和修改。笔记内容大部分为公式的推导过程。 目录5.1 气块的概念5.2 热力学第一定律的几种微分形式5.3 干绝热过程5.4 干绝热递减率(干绝热直…

如何解决服务器开机报警问题

解决服务器开机报警问题,需要按照一系列步骤进行故障排查和修复。 一、初步检查与确认 查看报警信息: 观察服务器的指示灯,特别是电源指示灯、硬盘指示灯等,看是否有异常。 如果服务器有显示屏或终端窗口,查看是否有相应的警告信息或错误代码。 确认电源状态: 检查电源线…

用友财务软件数据库恢复

是一个关键的操作,旨在解决数据库文件损坏或数据丢失的问题。 一、恢复方法使用软件内置的数据恢复工具 步骤: 打开用友财务软件,进入“工具”或“数据管理”等相关菜单。 找到“数据库恢复”或“数据恢复”选项,点击进入。 选择需要恢复的数据库文件和备份文件。这里需要确…

管家婆数据库数据恢复

一、确认数据丢失情况 首先,需要确认数据是否真的丢失,以及丢失的数据范围。有时候,数据可能只是暂时无法访问,或者由于软件故障导致的数据显示问题。 二、检查备份定期备份的重要性 管家婆软件通常会具备自动备份功能,用户应该确保该功能已经开启,并定期检查备份文件的完…

服务器进水主板维修

服务器进水主板的维修是一个复杂且需要专业技能的过程。 一、立即断电与初步处理 立即断电:一旦发现服务器进水,应立即切断电源,防止电流通过水分造成短路,进一步损坏主板和其他电子元件。 移除电池与外设:如果是笔记本电脑或可拆卸电池的服务器,迅速移除电池和所有外部连…

sqlserver数据库MDF文件修复

针对SQL Server数据库的MDF文件修复,这是一个相对复杂的过程,具体方法取决于文件的损坏程度、是否有备份以及数据库的状态。以下是一些常见的修复方法:使用备份恢复 这是最直接且最可靠的方法。如果你有数据库的备份,并且备份是在MDF文件损坏之前创建的,那么你可以通过还原…