2011-05-07

關於生成函數

一個整數N、用1234做整數分割的排列數為何?其中特別把4當作1

Ex:N=2,2=1+4 or 4+1 or 1+1 or 4+4 or 2 有五種可能
Ex:N=1, 1=1 or 4 兩種可能

我已用遞迴解出、但想問用生成函數是否可以解此題呢?望助教不吝賜教。(指數生成函數?)

5 則留言:

線代離散助教(wynne) 提到...

這個我覺得用指數生成函數可能不太適合, 因為它的一般式不好解, 譬如說在排列裡放 3 個 2 時要考慮的是 x^6, 可是此時只有 3 個東西在做排列, 所以若要扣掉重複的排列, 那麼式子得改成 x^6/3!, 要寫出完整的EGF雖然不難, 但要把它解開恐怕不太容易

月戀星辰 提到...

呃...那如果只要寫出來呢?解不出來也沒關係..

線代離散助教(wynne) 提到...

現在再看一遍, 我覺得昨天的回答不好, 請你把它忘掉好了, 因為我發現這應該是無法用EGF來討論

我們一般之所以會去算出指數生成函數 x^i/i! 的係數, 是因為當我們在考慮 x^i 時, 我們一定是拿 "i" 個東西再作排列, 所以那個 i! 會是固定的, 可是像這裡, 假設考慮 i=6, 則像是 1+1+1+3, 1+2+3,... 這些都可以湊出 6, 如此一來我們會無法算出到底要扣掉幾個重複排列, 所以這個問題本質上和我們平常用EGF來解的問題完全不一樣

這樣講好像還是有一點抽象, 但希望你有比較清楚為什麼不適用, 或者請你說說看為什麼你會想要用生成函數呢? 也許你自己試過以後就會了解問題出在哪兒了

月戀星辰 提到...

整數分割、印象中上課是在生成函數那裏、我是想:

(1+x/1!+x^2/2!+...)(1+x^2/2!+x^4/4!+...)(1+x^3/3!+x^6/6!+...)(1+x/1!+x^2/2!+...)...

因為只會有1234、所以我會這樣寫、但確實有問題、但不知道問題在哪裡?

線代離散助教(wynne) 提到...

主要原因還是請參考我上面所提的,
指數生成函數一般只處理排列數固定的情形

我幫你把你所定義的這個指數生成函數定義到另一個問題上, 希望這樣你可以體會兩者之間的差別: 你寫的這個式子, 其實就是利用 1,2,3,4 這 4 個字元形成n-序列的方法數之EGF, 其中
1 可以放 0,1,2,... 個
2 可以放 0,2,4,... 個
3 可以放 0,3,6,... 個
4 可以放 0,1,2,... 個
在這個問題中, 如果是取 w 個 1, x 個 2, y 個 3, z 個 4, 那排列數一定就是 n!/(w!x!y!z!), 這裡的排列數是固定的, 只和取幾個有關, 和取的數字本身無關, 可是在原來的問題中, 那裡的排列數卻是變動的, 能湊成 n 並不代表真的就一定是有 n! 個東西在做排列, 我之前說問題本質不同所指的就是這個