初心者生成機能() - 生成関数正常

序文

生成機能は非常に便利なものです。

しかし、私の悪い数学の基礎のために、したがって、私は学ぶことしていません。私も勉強に付着していきませんが、あまりにも服用しないことを学ぶ、彼らは多項式の乗算を理解するとは思いません。

しかし、この時間は、私は最終的に、比較的良心のブログを見つけ、そして最終的には初期エントリの機能を生成するための方法として。

簡単なナップザック問題でスタート

この質問を考えてみます。

そこ\(4 \)商品の種類、次のように各項目の数である:(\ \ {1,2,3,1 \} \) 異なる数の二つの異なるプログラムの定義選択項目があれば少なくとも1つの項目選択の存在は、要求が選択した場合にのみ\(5 \)プログラム項目の数。

あなたは、動的プログラミングを希望した場合、その後、バックパックに簡単にこの問題を解決することができ、言っても過言ではありません。

今、私たちの焦点は、この問題を解決するために思考の生成機能を使用する方法についてです。

生成意味の基本的な機能

我々は多項式(実際として表さ各項目を検討生成機能):\ (\ I = {0} sum_∞a_ix^ I ^ \)

前記\(I \)次項\(X ^ I \)係数\(a_iを\)は、選択を表し\(I \)番組項目の数。そして、ここで\(X- \)および任意の意味をなさない。

最初のために\(1 \)商品の種類、2つだけのオプション:選択したり、選択していない\(1 \)プログラム番号がある\(1 \) 私たちは、それは次のように表現される多項式を使用することができます\(^ 0 ^ X- + X-1 \) すなわち\(X-1 + \) )。

最初の場合は\(2 \)を選択または選択しないでください:品物の種類は、3つのオプションがあります\(1 \)または選択した\(2 \)ヶ月。我々はまた、それはのように表される多項式を使用することができます\(X- + 1 + X- ^ 2 \)

最初の場合は\(3 \)を選択または選択しないでください:品物の種類は、4つのオプションがあります\(1 \)または選択した\(2 \)または選択した\(3 \)ヶ月。我々はまだそれがのように表される多項式を使用することができます(X- + 1 + 2 + X-X- ^ ^ 3 \)\

最初のために\(4 \)を選択することを選択したかどうか:品物の種類、たった2つのオプション\(1 \) 1。我々はまだ、それは次のように表現される多項式を使用することができます(X-1 + \)を\

そこで、我々は入れて管理\(4 \)にアイテムの種類を\(4 \)多項式。

次に、のはどのような多項式乗算の性質はいを探検してみましょう。

例えば、我々は先の\(\ sum_ {I = 0 } ^∞a_ix^ I \) と\(\ sum_ {iが0 = ^∞b_ix^ I \}) 乗算、それから缶別々に2つの片多項式を各項目については。

最初の列挙では多項式で想定して\(^ a_ixをI \)列挙するために第二式で、\(^ b_jx J \) その後、我々はプラスを表す多項式にお答えします\(I + J a_ib_jx ^ {} \)

実際には、この操作の実用的な意義を考えてみましょう:私たちは、最初の記事に選出された場合には\(I \)、2番目の項目は、選択した(J \)\選出の合計(\ Iを+ J \)番目、こうして選択された\(I + J \)番組項目の数プラス最初に選択されたアイテム\(I \)プログラムの数第二の物品を選択します\(J \)プログラムの数の製品。

これは、私たちにいくつかの洞察を与えているようです。すなわち、第一のために、2つの多項式を乗算した後、これは(\ I)\まだ私達の本来の意図に沿った意味のエントリー時刻係数、。

我々は上記の例を取る場合(4 \)\多項式を掛け合わ、あなたが得ることができます:

\ [(1 + X)(1 + X + X ^ 2)(1 + X + X ^ 2 + X ^ 3)(1 + X)= 1 + 4×+ 8倍速^ 2 + 11X ^ 3 + 11X ^ 4 + 8倍速^ 5 + 4倍速^ 6 + X ^ 7 \]

多項式係数(\ \ {1,4,8,11,11,8,4,1 \} \) また、選択された代表\(0 \ sim7 \)番組項目の数。

我々は上記のその質問に答えたので、すなわち選出\(5 \)プログラムの項目数\(8 \)

この時点で、基本的な生成機能の重要性は、完成し説明することが不可欠です。

しかし、正確に何を使用し、基本的な生成機能は、それを何ですか?上記の例からわかるように、最適化のための任意の時間の複雑さをプレーしていないようです。

これは、その、さらに変換が必要です。

さらなる変換を生成する基本的な機能

さらに導出式、即ち、を対象とする基本的な変換関数を生成\(x∈(-1,1)\) 時間\私は= {0} sum_∞x^ I ^ = \ 1-X} {frac1(\ \)以下のように、証明:

\(S = \ sum_ {I = 0} ^∞x^ I \)、则\(XS = \ sum_ {I = 1} ^ {∞+ 1}のx ^ I \)

そのための(∞+ 1 \)\まだ無限大とみなすことができるので、我々は考えることができます\(XS = \ sum_ = {I}。1∞x^ I ^ \)

\(XS-S = \ sum_ ^∞x^ I- \ sum_ {I = 0} ^∞x^ iは= -1 \ {I 1 =})、即\((X-1)S = -1 \)

そう\(S = \ {-1} {FRAC。1-X} = \ frac1。1-X} {\)

このように、我々は、多項式をあげると、単純な式にそれを回しました。

ここでは、より多くのアウトのがいることを注意\(X∈(-1,1)\)私は、前に言ったように、することができ(X-は\)\そんなにこの制限は、任意の関係を持っていないことを、任意の意味をなさない。

実際には、この変換では、我々は生成機能が大きな役割を果たしていることができます。

生成された基本的な機能の簡単なアプリケーション

いくつかの単純な変換によると、我々はいくつかの共通の制限と生成機能の関係を変え得ることができます。

  • 選択の要件超えることができない\(K \)を \ (\ sum_ {I} = 0 ^ ^私はKX \ FRACを= 1-X ^ {K + 1 {{}}} 1-X \。)

  • 数は選択するように求められなければならない\(K \) 複数のI \(\ sum_ {I}を= 0 {^ IK ^∞x} = \ sum_ {0} ^ = I∞(X ^ K)= ^ \ 1-X ^ {frac1} K \)

同時に、我々は、重要で実用的な式を知る必要があります:\(\ frac1 {(1-X)} = ^ K \ sum_ I = {0} + I {^∞C_-K-K 1 1} ^ { I X ^} \)

簡潔には、関数が生成することである(\ frac1 {(1- \ \ X)^ kは}) \(I \)係数次の項は、(C_ {I + K-\ 1} ^ {K-1} \ 、次のことを証明します:

\(\ frac1 {(1-X)^ K} =(\ frac1 {1-X})^ K =(\ sum_ ^∞x^ I)^ K \ {I = 0})

最終セット\(X ^ I \)生成方法を\(X = I ^ \ prod_ 1} = {P ^ {^ KX A_Pは} \) 次いで\(X ^ I \)係数に、実際と同等です長さの数を取得する\(P \)アレイ\(\)が満たされます。

  • \(\ sum_ {P = 1}「ka_p = I \)
  • いずれかのための\(P(1 \ルP \ルK)\) 満たす(GE 0 \ \ A_P)\

これは実際に求めている(I \)\への番目の項目\(K \)番号スキームが空集合であってもよいし、我々は、セパレータを得るために法律を使用することができます。

このプロセスは考慮に相当する\(I \)を物品選択\(K-1 \) 再使用可能な)スリットを挿入\(K-1 \)プレート。

合計\(I + 1 \) 新しい記事の通りのスロットならば、挿入するためのスリット、および追加\(K-2 \)新しい記事の最初の\(T \)を表し番目\(T + 1 \)プレートは、最初かどうか\(T \)と共にプレート上。

したがって、それは等価であると\((I + 1)+ (K-2)= I + K-1 \) 記事を選択する\(K-1 \)番目の項目は、プログラムナンバーである\(C_ {I + ^ {} 1-K-K 1} \)

[2000]羅区は世界を救います

おすすめ

転載: www.cnblogs.com/chenxiaoran666/p/GeneralGeneratingFunction.html