學了好長時間母函式了,一直沒時間進行總結(忙於一些瑣事),今天正好放一天假,趁空閒,對母函式做個總結,以便以後更加方便學習。
進入主題:
我對母函式的理解是,母函式,顧名思義,就是母親,那就說明,在這個函式裡面還有兒子,即子函式。說白了,就是子函式可以看作是母函式的乙個子集。
而如何把這些子函式用乙個母函式來表示呢?即所謂的通項公式,我個人覺的這是問題的癥結之處,解決了這一癥結,那麼,後面的問題就容易多了。
下面我來談談怎麼來求解母函式:
看過許多有關母函式的資料,介紹母函式的思想基本一樣,我這裡就通俗理解為:母函式就是乙個多項式前面的係數的乙個整體的集合,而子函式就是這個多項式每一項前面的係數。
那麼,在碰到問題時,我們如何區分它是不是要用母函式來求解?如果用到母函式,那麼需要什麼樣的母函式來求解?母函式是用來解決哪種型別的問題?
我想這是包括我在內的很多初次接觸母函式的朋友所關心的問題。
下面我來逐一做出解答:
什麼樣的題型適合用母函式
母函式有普通型的,也有指數型的。而我們通常在做題當中碰到的大多是普通型的,指數型的較少,主要用來求解多重排列的題型(我至今未涉及到有關指數型的母函式,希望讀者提議,若以後碰到,我會加以補充),接下來,我重點說一下普通型母函式。
普通型的可以用在求解組合以及整數拆分的題型中。
例如,對於有n種物品,如果第i個物品有ki個,我們可以列式n個項相乘 (x^0+x^1+...x^k1)*(x^0+x^1+...x^k2)*...*(x^0+x^1+...x^kn),每一項表示對於第i件物品,可以有(x^0+x^1+...x^ki)中取法,【注意係數都為1,因為同種物品去i件,它的取法是1】多項相乘:因為取m件物品這件事實要分為對n種物品各取分別取1次【0~ki個】, 是組合計數的乘法原理, x^m 的係數是組合成m件物品的所有方案數.(可以參考hduacm課件)
整數拆分
1 #include"iostream"
2 usingnamespacestd;
3 #definen 130
4 inta[n+1],b[n+1];
5 intmain()
6 12 for(i=2;i<=n;i++)
13 19 for(j=0;j<=n;j++)
20 23 }
24 cout<
25 }
26 return0;
27 28 }
hdu2028
1 #include"iostream"
2 usingnamespacestd;
3 #definen 50
4 #definem 26
5 inta[m+1],b[m+1],c1[n+1],c2[n+1];
6 intmain()
7 22 memset(c1,0,sizeof(c1));
23 memset(c2,0,sizeof(c2));
24 c1[0]=1;
25 26 for(i=0;i<26;i++)
27 35 for(j=0;j<=50;j++)
36 37
38 }
39 for(i=1;i<=50;i++)
40 sum+=c1[i];
41 cout<
42 43 }
44 return0;
45 }
2,需要什麼樣的母函式來求解
可以說不同的問題,有不同的解法,對於一道可以用母函式來求解的題而言,可能還有比母函式更簡潔的方法,因人而異。不一定遇到組合型別的題型就要用組合函式,在這裡我只是要通過一些例子來說明如果我們需要用母函式來求解,那麼,該如何選定合適的母函式呢?
母函式的框架基本一樣,
如hdu2082,
for(i=0;i<26;i++)
}如hdu1028,
for(i=2;i<=n;i++)
for(j=0;j<=n;j++)
}注:根據題意,仔細分析,建立關係。
母函式知識點,感覺講的還可以
母函式 generating function 詳解 tanky woo 在數學中,某個序列的母函式 generating function,又稱生成函式 是一種形式冪級數,其每一項的係數可以提供關於這個序列的資訊。使用母函式解決問題的方法稱為母函式方法。母函式可分為很多種,包括普通母函式 指數母函...
函式知識點
1.函式 函式就是一種封裝 2.定義函式 function 函式名 3.函式不會自動執行,需要被呼叫才可以執行 函式名 4.函式命名規則 與變數命名規則一致 1 以字母 開頭 2 可以包含數字 字母 3 區分大小寫 4 不能使用關鍵字和保留字 駝峰命名法 若名稱由多個單詞組成,則從第二個單詞開始,首...
函式知識點
今日主要內容 函式 一,函式的概念 函式就是對一些重複使用的功能的封閉 二,函式的組成部分 1,函式名 是程式使用函式的依據 2,函式體 是實現功能的具體 塊 3,函式返回值 功能實現的結果 4,函式引數 實現功能的條件 三,函式的定義 函式需要先定義,再呼叫 def 函式申明的關鍵字 例 def ...