【组合数学】生成函数

目录

  • 1.形式幂级数
  • 2.生成函数性质
  • 3.生成函数求解递推关系
  • 4.生成函数在计数问题中的应用

1.形式幂级数

生成函数是解决计数问题的一种有效方法,它的中心思想是:对于一个有限或无限数列 a 0 , a 1 , a 2 , . . . {a_0,a_1,a_2,...} a0,a1,a2,...,用 { x i } ( i = 0 , 1 , . . . ) \{x^i\}(i=0,1,...) {xi}(i=0,1,...)这样的生成基构成形式幂级数 A ( x ) = a 0 + a 1 x + a 2 x 2 + . . . A(x)=a_0+a_1x+a_2x^2+... A(x)=a0+a1x+a2x2+... 使 { a i } \{a_i\} {ai} { x i } \{x^i\} {xi} 成一一对应关系,由此 { a i } \{a_i\} {ai} { x i } \{x^i\} {xi} 构成了一个整体,通过研究幂级数 A ( x ) A(x) A(x),导出数列 { a 0 , a 1 , a 2 , . . . } \{a_0,a_1,a_2,...\} {a0,a1,a2,...}的构造和性质。
A ( x ) A(x) A(x) 为序列 { a 0 , a 1 , a 2 , . . . } \{a_0,a_1,a_2,...\} {a0,a1,a2,...} 的生成函数,并记为 G ( a n ) G(a_n) G(an)

对于形式幂级数可以像收敛的幂级数那样进行运算,运算的定义和规则完全相同

定义 1.1:对于任意 A ( x ) = ∑ k = 0 ∞ a k x k A(x)=\sum^{\infty}_{k=0}a_kx^k A(x)=k=0akxk,规定 D A ( x ) DA(x) DA(x) A ( x ) A(x) A(x) 的导数且 D A ( x ) ≡ ∑ k = 0 ∞ k a k x k − 1 DA(x)\equiv \sum^{\infty}_{k=0}ka_kx^{k-1} DA(x)k=0kakxk1

2.生成函数性质

一个数列和它的生成函数是一一对应的。 已知数列便得知它的生成函数(系数项确定)。同理求得生成函数,则数列也随之而定。
数列 { a 0 , a 1 , a 2 , . . . } \{a_0,a_1,a_2,...\} {a0,a1,a2,...} 的生成函数为 A ( x ) = ∑ k = 0 ∞ a k x k A(x)=\sum^{\infty}_{k=0}a_kx^k A(x)=k=0akxk
数列 { b 0 , b 1 , b 2 , . . . } \{b_0,b_1,b_2,...\} {b0,b1,b2,...} 的生成函数为 B ( x ) = ∑ k = 0 ∞ b k x k B(x)=\sum^{\infty}_{k=0}b_kx^k B(x)=k=0bkxk
可以得到生成函数的如下一些性质

性质 2.1:若 b k = { 0 ( k < l ) a k − l ( k ≥ l ) b_k=\left\{\begin{matrix} 0 & (k<l)\\ a_{k-l} & (k\ge l) \end{matrix}\right. bk={0akl(k<l)(kl) B ( x ) = x l ⋅ A ( x ) B(x)=x^l\cdot A(x) B(x)=xlA(x)

性质 2.2:若 b k = a k + l b_k=a_{k+l} bk=ak+l ,则 B ( x ) = 1 x l ( A ( X ) − ∑ k = 0 l − 1 a k x k ) B(x)=\cfrac{1}{x^l}(A(X)-\sum_{k=0}^{l-1} a_kx^k) B(x)=xl1(A(X)k=0l1akxk)

性质 2.3:若 b k = ∑ i = 0 k a i b_k=\sum_{i=0}^{k}a_i bk=i=0kai,则 B ( x ) = A ( x ) 1 − x B(x)=\cfrac{A(x)}{1-x} B(x)=1xA(x)

性质 2.4:若 b k = ∑ i = k ∞ a i b_k=\sum_{i=k}^{\infty}a_i bk=i=kai,则 B ( x ) = A ( 1 ) − x A ( x ) 1 − x B(x)=\cfrac{A(1)-xA(x)}{1-x} B(x)=1xA(1)xA(x)

性质 2.5:若 b k = k a k b_k=ka_k bk=kak,则 B ( x ) = x A ( x ) B(x)=xA(x) B(x)=xA(x)

性质 2.6:若 b k = a k k + 1 b_k=\cfrac{a_k}{k+1} bk=k+1ak,则 B ( x ) = 1 x ∫ 0 x A ( t ) d t B(x)=\cfrac{1}{x}\int_{0}^{x}A(t)dt B(x)=x10xA(t)dt

性质 2.7:若 c k = α a k + β b k c_k=\alpha a_k+\beta b_k ck=αak+βbk,则 C ( x ) ≡ ∑ k = 0 ∞ c k x k = α A ( x ) + β B ( x ) C(x)\equiv \sum_{k=0}^{\infty}c_kx^k=\alpha A(x)+\beta B(x) C(x)k=0ckxk=αA(x)+βB(x)

数列生成函数
{1,1,1,…} G { 1 } = 1 1 − x G\{1\}=\cfrac{1}{1-x} G{1}=1x1
{ a 0 , a 1 , a 2 , . . . } \{a^0,a^1,a^2,...\} {a0,a1,a2,...} G { a k } = 1 1 − a x G\{a^k\}=\cfrac{1}{1-ax} G{ak}=1ax1
{0,1,2,…} G { k } = x ( 1 − x ) 2 G\{k\}=\cfrac{x}{(1-x)^2} G{k}=(1x)2x
{ 0 ⋅ 1 , 1 ⋅ 2 , 2 ⋅ 3 , . . . } \{0\cdot1,1\cdot2,2\cdot3,...\} {01,12,23,...} G { k ( k + 1 ) } = 2 x ( 1 − x ) 3 G\{k(k+1)\}=\cfrac{2x}{(1-x)^3} G{k(k+1)}=(1x)32x
{ 0 ⋅ 1 ⋅ 2 , 1 ⋅ 2 ⋅ 3 , 2 ⋅ 3 ⋅ 4 , . . . } \{0\cdot1\cdot2,1\cdot2\cdot3,2\cdot3\cdot4,...\} {012,123,234,...} G { k ( k + 1 ) ( k + 2 ) } = 6 x ( 1 − x ) 4 G\{k(k+1)(k+2)\}=\cfrac{6x}{(1-x)^4} G{k(k+1)(k+2)}=(1x)46x
{0,1,4,…} G { k 2 } = x ( 1 + x ) ( 1 − x ) 3 G\{k^2\}=\cfrac{x(1+x)}{(1-x)^3} G{k2}=(1x)3x(1+x)
{0,1,8,…} G { k 3 } = x 3 + 4 x 2 + x ( 1 − x ) 4 G\{k^3\}=\cfrac{x^3+4x^2+x}{(1-x)^4} G{k3}=(1x)4x3+4x2+x
{ 1 0 ! , 1 1 ! , 1 2 ! , . . . } \{\cfrac{1}{0!},\cfrac{1}{1!},\cfrac{1}{2!},...\} {0!1,1!1,2!1,...} G { 1 k ! } = e x G\{\cfrac{1}{k!}\}=e^x G{k!1}=ex
{ ( α 0 ) , ( α 1 ) , ( α 2 ) , . . . } \{\binom{\alpha}{0},\binom{\alpha}{1},\binom{\alpha}{2},...\} {(0α),(1α),(2α),...} G { ( α k ) } = ( 1 + x ) α G\{\binom{\alpha}{k}\}=(1+x)^\alpha G{(kα)}=(1+x)α
{ ( n + 0 0 ) , ( n + 1 1 ) , ( n + 2 2 ) , . . . } \{\binom{n+0}{0},\binom{n+1}{1},\binom{n+2}{2},...\} {(0n+0),(1n+1),(2n+2),...} G { ( n + k k ) } = 1 ( 1 − x ) n + 1 G\{\binom{n+k}{k}\}=\cfrac{1}{(1-x)^{n+1}} G{(kn+k)}=(1x)n+11

习题1、 求序列{5, 6, 7, …, n + 5, …}的生成函数

在这里插入图片描述

习题2、 利用生成函数计算 1 3 + 2 3 + . . . + n 3 1^3+2^3+...+n^3 13+23+...+n3

在这里插入图片描述

3.生成函数求解递推关系

生成函数求解递推关系基本步骤如下:

  1. A ( x ) = ∑ n = 0 ∞ f ( n ) x n A(x)=\sum_{n=0}^{\infty}f(n)x^n A(x)=n=0f(n)xn
  2. 将关于 f ( n ) f(n) f(n) 的递推关系式转化成关于 A ( x ) A(x) A(x) 的方程式
  3. 解出 A ( x ) A(x) A(x) ,将 A ( x ) A(x) A(x) 展开成 x 的幂级数, x n x^n xn 的系数即是 f ( n ) f(n) f(n)

习题3、 用生成函数求解递推关系 { f ( n ) = 4 f ( n − 2 ) f ( 0 ) = 0 , f ( 1 ) = 1 \left\{\begin{matrix} f(n)=4f(n-2)\\ f(0)=0,f(1)=1 \end{matrix}\right. {f(n)=4f(n2)f(0)=0,f(1)=1

在这里插入图片描述

习题4、 用生成函数求解递推关系 { f ( n ) = f ( n − 1 ) + 9 f ( n − 2 ) − 9 f ( n − 3 ) f ( 0 ) = 0 , f ( 1 ) = 1 , f ( 2 ) = 2 \left\{\begin{matrix} f(n)=f(n-1)+9f(n-2)-9f(n-3)\\ f(0)=0,f(1)=1,f(2)=2 \end{matrix}\right. {f(n)=f(n1)+9f(n2)9f(n3)f(0)=0,f(1)=1,f(2)=2

在这里插入图片描述

习题5、 用生成函数求解递推关系 { f ( n ) = f ( n − 1 ) + n 2 f ( 0 ) = 0 \left\{\begin{matrix} f(n)=f(n-1)+n^2\\ f(0)=0 \end{matrix}\right. {f(n)=f(n1)+n2f(0)=0

在这里插入图片描述

4.生成函数在计数问题中的应用

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

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

相关文章

数据分析的基本步骤

了解过数据分析的概念之后&#xff0c;我们再来说下数据分析的常规步骤。 明确目标 首先我们要确定一个目标&#xff0c;即我们要从数据中得到什么。比如我们要看某个指标A随时间的变化趋势&#xff0c;以期进行简单的预测。 数据收集 当确定了目标之后&#xff0c;就有了取…

SQL Server 查询处理过程

查询处理--由 SQL Server 中的关系引擎执行&#xff0c;它获取编写的 T-SQL 语句并将其转换为可以向存储引擎发出请求并检索所需结果的过程。 SQL Server 需要四个步骤来处理查询&#xff1a;分析、代化、优化和执行。 前三个步骤都由关系引擎执行&#xff1b;第三步输出的是…

camera曝光时间

曝光和传感器读数 相机上的图像采集过程由两个不同的部分组成。第一部分是曝光。曝光完成后&#xff0c;第二步就是从传感器的寄存器中读取数据并传输&#xff08;readout&#xff09;。 曝光&#xff1a;曝光是图像传感器进行感光的一个过程&#xff0c;相机曝光时间&#xf…

深度学习中的潜在空间

1 潜在空间定义 Latent Space 潜在空间&#xff1a;Latent &#xff0c;这个词的语义是“隐藏”的意思。“Latent Space 潜在空间”也可以理解为“隐藏的空间”。Latent Space 这一概念是十分重要的&#xff0c;它在“深度学习”领域中处于核心地位&#xff0c;即它是用来学习…

和葡萄酒时为什么要写品酒笔记?

如果你不把你的想法写下来&#xff0c;它们可能会在你离开房间之前就离开你的大脑。写笔记&#xff0c;包括令人难忘的品酒笔记&#xff0c;它是关于记录一些超越今天和明天的有意义的事情。这是你的记忆葡萄酒&#xff0c;对你来说最相关、最有区别的就是最重要的。最后&#…

桌面概率长按键盘无法连续输入问题

问题描述&#xff1a;概率性长按键盘无法连续输入文本 问题定位&#xff1a; 系统按键流程分析 图一 系统按键流程 按键是由X Server接收的&#xff0c;这一点只要明白了X Window的工作机制就不难理解了。X Server在接收到按键后&#xff0c;会转发到相应程序的窗口中。在窗…

CogVLM与CogAgent:开源视觉语言模型的新里程碑

引言 随着机器学习的快速发展&#xff0c;视觉语言模型&#xff08;VLM&#xff09;的研究取得了显著的进步。今天&#xff0c;我们很高兴介绍两款强大的开源视觉语言模型&#xff1a;CogVLM和CogAgent。这两款模型在图像理解和多轮对话等领域表现出色&#xff0c;为人工智能的…

【算法日志】非排序数组的二分查找应用

文章目录 前言 二分查找是一种比较简单且基础的查找算法&#xff0c;多用于排序数组的快速查找。但其实二分查找也有非排序数组的应用。 引例 Leetcode162 寻找峰值 本题是一道经典的二分查找算法题&#xff0c;要求找到一个比左右相邻值大的峰值。如果用暴力解法&#xff0…

【网络安全】网络防护之旅 - Java安全机制探秘与数字证书引爆网络防线

&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《网络安全之道 | 数字征程》⏰墨香寄清辞&#xff1a;千里传信如电光&#xff0c;密码奥妙似仙方。 挑战黑暗剑拔弩张&#xff0c;网络战场誓守长。 目录 &#x1f608;1. 初识网络安…

JS的浅拷贝和深拷贝

首先理解什么是浅拷贝和深拷贝&#xff1a; 浅拷贝&#xff1a; 浅拷贝只会复制对象的第一层属性&#xff0c;而不会递归地复制嵌套的对象。浅拷贝仅复制对象的引用&#xff0c;新对象和原始对象仍然共享相同的引用&#xff0c;因此对新对象的修改可能会影响到原始对象。浅拷…

自动化测试 (五) 读写64位操作系统的注册表

自动化测试经常需要修改注册表 很多系统的设置&#xff08;比如&#xff1a;IE的设置&#xff09;都是存在注册表中。 桌面应用程序的设置也是存在注册表中。 所以做自动化测试的时候&#xff0c;经常需要去修改注册表 Windows注册表简介 注册表编辑器在 C:\Windows\regedit…

WebSocket开发

目录 前言 1.介绍 2.原理解析 3.简单的聊天室搭建 4.点到点消息传输 总结 前言 WebSocket 是互联网项目中画龙点睛的应用&#xff0c;可以用于消息推送、站内信、在线聊天等业务。 1.介绍 WebSocket 是一种基于 TCP 的新网络协议&#xff0c;它是一种持久化的协议&…

Java精品项目源码新基于协同过滤算法的旅游推荐系统(编号V69)

Java精品项目源码新基于协同过滤算法的旅游推荐系统(编号V69) 大家好&#xff0c;小辰今天给大家介绍一个基于协同过滤算法的旅游推荐系统

056:vue工具 --- CSS在线格式化

第056个 查看专栏目录: VUE ------ element UI 专栏目标 在vue和element UI联合技术栈的操控下&#xff0c;本专栏提供行之有效的源代码示例和信息点介绍&#xff0c;做到灵活运用。 &#xff08;1&#xff09;提供vue2的一些基本操作&#xff1a;安装、引用&#xff0c;模板使…

Netty应用(七) ----MQTT编解码器

目录 0.前言1. MqttEncoder--编码器1.1 构造方法1.2 encodeConnectMessage -- 连接消息1.3 encodeConnAckMessage - 确认连接1.4 encodePublishMessage -- 发布消息1.5 encodeSubscribeMessage - 订阅主题1.6 encodeUnsubscribeMessage - 取消订阅1.7 encodeSubAckMessage - 订…

HarmonyOS应用开发实战—开箱即用的应用首页页面【ArkTS】【鸿蒙专栏-34】

一.HarmonyOS应用开发实战—开箱即用的应用首页页面【ArkTS】【鸿蒙专栏-34】 1.1 项目背景 HarmonyOS(鸿蒙操作系统)是华为公司推出的一种分布式操作系统。它被设计为一种全场景、全连接的操作系统,旨在实现在各种设备之间的无缝协同和共享,包括智能手机、平板电脑、智能…

计算机网络(四)

九、网络安全 &#xff08;一&#xff09;什么是网络安全&#xff1f; A、网络安全状况 分布式反射攻击逐渐成为拒绝攻击的重要形式 涉及重要行业和政府部门的高危漏洞事件增多。 基础应用和通用软硬件漏洞风险凸显&#xff08;“心脏出血”&#xff0c;“破壳”等&#x…

出国旅游需要注意些什么

出国旅游是一种令人兴奋、令人期待的经历。然而&#xff0c;在进行这种经历之前&#xff0c;有几件事情是需要注意的。本文将为您介绍出国旅游需要注意的一些重要事项。首先&#xff0c;为了确保您的出国旅行顺利进行&#xff0c;您应该提前办理好您的签证和护照。不同国家对于…

【神器】wakatime代码时间追踪工具

文章目录 wakatime简介支持的IDE安装步骤API文档插件费用写在最后 wakatime简介 wakatime就是一个IDE插件&#xff0c;一个代码时间追踪工具。可自动获取码编码时长和度量指标&#xff0c;以产生很多的coding图形报表。这些指标图形可以为开发者统计coding信息&#xff0c;比如…

头部首发优志愿头部u_sign生成与TLS指纹处理! + 数据可视化技术讲解【Python爬虫】

目录 针对大学名称 大学排名, 综合指数,学校情况等数据进行爬取 找对应得数据包 请求发现数据有加密 发现加密参数 搜索加密参数&#xff0c;好进行分析 分析过程 数据可视化 针对大学名称 大学排名, 综合指数,学校情况等数据进行爬取 首先进行鼠标右键&#xff0c;进行…