首页 > 其他分享 >生成函数(蛄)

生成函数(蛄)

时间:2022-11-06 15:55:05浏览次数:38  
标签:phi frac 5x 2x sqrt 生成 函数

1.本质

生成函数的本质——处理排列组合问题的有利工具,而不是简单的\(\frac{1}{1-x}\)的指标代换

2.定义

在数学中,某个序列(an)n∈N 的母函数(又称生成函数,英语:Generating function)是一种形式幂级数,其每一项的系数可以提供关于这个序列的信息。

讲的通俗一点,对于某个序列$$a_0,a_1,…,a_n$$,我想找一个函数来表示它,假设是$$G(x)=a_0+a_1x+a_2x2…a_nxn$$。这时候函数第i项的系数就表示了序列中的第i个元素。同时我们也可以看到,函数中的自变量x好像并没有什么意义,他的取值并不影响序列的表示,因此我们称这种函数为形式幂级数

3.干什么用捏

明显G(x)是多项式吧,多项式能干的事就多了,加减乘除,exp,.....

4.普通生成函数

有三种物品,分别有3,2,3个,问拿出4个进行组合 ({1123},{3211}算一种)的方案数是多少
先构造函数1,对每个物品构造一个多项式

\(G1(x) = 1 + x + x^2 + x^3\)

\(G_2(x) = 1 + x + x^2\)

\(G_3(x) = 1 + x + x ^ 2 + x ^ 3\)

1 1 1 1

1 1 1

1 1 1 1

然后这时候我们就很懵了,然后嘞,这玩意儿能干啥,我们可以对\(\frac{1]{1-x}\)变形搞一搞,
同时我们还知道\(\frac{1]{1-x}\)对应的第i项系数为1,那这时候神奇的操作来了,我们可以将构造出来的函数化成类似于\(\frac{1]{1-x}\)的一系列柿子,进而求得了通解。

通项公式

1.广义二项式定理

\(\frac{1}{(1-x)^n} = \sum_{k=0}^{\infty}C_{n+k-1}^{k-1}x^k\)

举个栗子

求斐波那契数列的通项公式:

构造函数\(A(x) = 1 + x + 2x^2 + 3x^3 + 5x^4 +.....\)

\[A(x) = 1 + x + 2x^2 + 3x^3 + 5x^4 +..... \]

\[xA(x) = x + x^2 + 2x^3 + 3x^4 + 5x^5 \]

\[x^2A(X) = x^2 + x^3 + 2x^4 + 4x^5+5x^6 \]

然后就有了一个小方程:

\[A - xA - x^2A = 1 \]

\[A = \frac{1}{1-x-x^2} \]

\[\frac{1}{1-x-x^2}\ 是个二次方程 \]

配方一下
\(1-x-x^2 = (1-\phi_1x)(1-\phi_2x)\)

再解个方程

\(a(1−ϕ_2x)+b(1−ϕ_1x)=1\)

\[a = \frac{1}{\sqrt{5}} \phi_1, b = -\frac{1}{\sqrt{5}} \phi_2\ \]

带回原始柿子:

\[A_n = \frac{1}{\sqrt{5}}((\frac{{1+\sqrt{5}}}{2})-(\frac{{1-\sqrt{5}}}{2})) \]

标签:phi,frac,5x,2x,sqrt,生成,函数
From: https://www.cnblogs.com/guier/p/16862787.html

相关文章

  • C/C++ 数组、指针与函数
    数组与指针数组名数组第一个元素的地址intar[10];int*p=ar;p==&ar[0];*p==ar[0];多维数组可看做一维数组,其每个元素也是一个数组intar[4][5];int(*......
  • 创建型模式——生成器模式
    生成器模式→建造者模式、builder一、意图生成器模式是一种创建型设计模式,使你能够分步骤创建复杂对象。该模式允许你使用相同的创建代码生成不同类型和形式的对象。......
  • 使用 Angular 14 的 inject 函数优化对 Ngrx 的使用方式
    我们先看Angular里一个常规的使用NgrxStore的例子:上面这段代码的缺陷是,Component作为UI的展现层,直接依赖于作为第三方库的StoreAPI——一个合乎逻辑的措施是,......
  • python的函数进阶
    匿名函数基本语法lambda:定义匿名函数(没有函数名的函数)lambda参数1,参数2,参数n:返回值应用场景1、用于定义一些函数结构体非常简单、而且使用次数较少的函数2、作为......
  • Python实现寄存器表格生成寄存器rtl代码
    功能需求:通过约定好字段的寄存器表格生成寄存器代码语言要求:Python关键点:如何操作表格-通过openpyxl第三方库实现思路:读取表格,将表格内容以列表形式存储,在存储时,对寄存器......
  • Java8新特性:函数式编程
    1.概述函数式编程学习目的:能够看懂公司里的代码大数据量下处理集合效率更高代码可读性高消灭嵌套地狱函数式编程思想:面向对象思想需要关注用什么对象完成什么事......
  • 【Python零基础入门篇 · 21】:构造函数、类属性和实例属性的访问
    构造函数构造方法构造方法:__init__方法(通常用来做属性初始化或赋值操作)用构造函数实现英雄攻击类属性和实例属性的访问类属性属于类,实例属性属于对象类属性在......
  • 【Python零基础入门篇 · 21】:构造函数、类属性和实例属性的访问
    构造函数构造方法构造方法:__init__方法(通常用来做属性初始化或赋值操作)用构造函数实现英雄攻击类属性和实例属性的访问类属性属于类,实例属性属于对象类属性在......
  • 【Python零基础入门篇 · 22】:析构函数、封装和私有权限、私有属性和私有方法
    析构函数__del__方法析构方法__del__是对象在被垃圾回收的时候起作用的一个方法,它的执行一般也就意味着对象不能够继续引用,回收内存。在删除对象时解释器会默认使用......
  • Xpath用法及其常用函数
    目录XPath简介XPath语法选取节点谓语(Predicates)选取未知节点选取若干路径XPath轴XPATH的几个常用函数XPath简介XPath(XMLPathLanguage)是一门在HTML\XML文档中查找信息......