關於生成函式

2021-09-25 00:21:12 字數 1106 閱讀 2664

定義

對於任意數列a0,a1,a2...an 即用如下方法與乙個函式聯絡起來:

則稱g(x)是數列的生成函式(generating function)。

例子比較典型的是:

因為生成函式的x沒有實際意義,我們可以任意取值。

(以下k為非負整數)

二項式定理:

k為任意實數,即定理可擴充套件 : (1+x)^(-k) = 1 + 2x + 3x^2 + 4*x^3 + ... 

證明:引理 : c(n,m) (從n裡取m個數)當n<0, c(n,m) =(-1)^m *  c(-n+m-1 ,m)(數學歸納法) 

(1+x)^(-k) = (-x)^0 * c(-k,0) + (-x)^1 * c(-k,1) +  (-x)^2 * c(-k,2) + .. + (-x)^k * c(-k,k)

c(-k,0) = 1 *c(k-1,0) 

c(-k,1) = -1 * c(k,1)

發現負負抵消 , 即證。

例題:n=x1+x2+x3+...+xk有多少個非負整數解?

分析:這道題是學排列與組合的經典例題了。把每組解的每個數都加1,就變成n+k=x1+x2+x3+...+xk的正整數解的個數了。教材上或許會出現這麼乙個難聽的名字叫「隔板法」:把n+k個東西排成一排,在n+k-1個空格中插入k-1個「隔板」。答案我們總是知道的,

就是c(n+k-1,k-1)。它就等於c(n+k-1,n)。它關於n的生成函式是g(x)=1/(1-x)^k。這個生成函式是怎麼來的呢?

其實,它就是(1-x)的-k次方。把(1-x)^(-k)按照剛才的牛頓

二項式展開,我們就得到了x^n的係數恰好是c(n+k-1,n),因為c(-k,n)*(-x)^n=[(-1)^n*c(n+k-1,n)]*[(-1)^n*x^n]=c(n+k-1,n)x^n。

例題2: 

求斐波拉契數列的通項公式。

f(i) = f(i-1) + f(i-2) 

根據遞推式,我們可以這樣變化,顯然有

然後自己腦補 。

自己看。

關於漢字生成拼音的的函式

關於漢字生成拼音的的函式 delphi windows sdk api 怎麼把乙個呼叫乙個函式就能把乙個漢字生成拼音 比如輸入 青黴素 生成 qms 知道的請告訴我一下,謝了 來自超級猛料的函式 function gethzpy const ahzstr string string const ch...

生成函式與指數生成函式

普通型生成函式gf 序列 的生成函式為 sum limits a ix i 常用gf的收斂形式 1.sum limits x i frac 序列 的生成函式 2.sum limits binomx i 1 x n 序列 的生成函式,就是二項式定理 3.sum limits binomx i frac...

關於生成DLL

現在寫的通用的平台,client server side 都要求外掛程式形式,每乙個外掛程式宿主於乙個動態庫中,在symbian中,動態的呼叫有些不是很方便,現在總結一下其各種型別庫的載入形式。0,靜態庫 1,動態庫 a,靜態載入 b,動態載入 動態庫動態載入的幾個問題 1,在emulator上不能...