Funkcje generujące są przydatne podczas projektowania algorytmów liczenia. Oznacza to, że nie tylko szukasz liczby obiektów mających określoną właściwość, ale także szukasz sposobu wyliczenia tych obiektów (i być może wygenerowania algorytmu zliczania obiektów). Bardzo dobra prezentacja znajduje się w rozdziale 7 konkretnej matematyki autorstwa Ronalda Grahama, Donalda Knutha i Orena Patashnika . Poniższe przykłady pochodzą z tych książek (błędy i brak jasności są moje).
Załóżmy, że szukasz sposobów na zmianę za pomocą danego zestawu monet. Na przykład w przypadku wspólnych nominałów amerykańskich¹ możliwe monety to . Aby dać ¢ 42 w zamian, jedną z możliwości jest ; inną możliwością jest . Napiszemy . Mówiąc bardziej ogólnie, możemy napisać funkcję generującą dla wszystkich sposobów wprowadzania zmian:
w bardziej technicznych[ 25 ] [ 10 ] [ 5 ] [ 1 ] [ 1 ] [ 10 ] [ 10 ] [ 10 ] [ 10 ] [ 1 ] [ 1 ] 42 ⟨ [ 25 ] [ 10 ][1],[5],[10],[25],[100][25][10][5][1][1][10][10][10][10][1][1]H = Σ H ≥ 0 Σ q ≥ 0 Σ d ≥ 0 Σ n ≥ 0 Σ s ≥ 0 [ 100 ] H [ 25 ] q [ 10 ] d [ 5 ] n [ 1 ] p42⟨[25][10][5][1]2⟩=⟨[10]4[1]2⟩
H.= ∑h ≥ 0∑q≥ 0∑re≥ 0∑n ≥ 0∑p ≥ 0[ 100 ]h[ 25 ]q[ 10 ]re[ 5 ]n[ 1 ]p
[ 100 ] , [ 25 ] , [ 10 ] , [ 5 ] , [ 1 ] ⟨ [ 100 ] H [ 25 ] q [ 10 ] d [ 5 ], N [ 1 ] s ⟩ = 100 H + 25 P + 10 d + 5 n + p v v H PH. jest terminem w przestrzeni szeregów mocy dla pięciu zmiennych
[ 100 ] , [ 25 ] , [ 10 ] , [ 5 ] , [ 1 ]. Zdefiniuj wycenę monomialu w tej przestrzeni przez
Zatem sposobami podania centów w zamian jest liczba monomialów, których wyceną jest . Możemy wyrazić w sposób przyrostowy, pisząc najpierw, w jaki sposób daje zmianę tylko w groszach, a potem w jaki sposób daje zmianę w groszach i monetach i tak dalej. ( myśli brak monety).
⟨ [ 100 ]h[ 25 ]q[ 10 ]re[ 5 ]n[ 1 ]p⟩ = 100 h + 25 q+ 10 d+ 5 n + p
vvH.P.I P = I + [ 1 ] + [ 1 ] 2 + [ 1 ] 3 + … = IN.jaP.= Ja+ [ 1 ] + [ 1 ]2)+ [ 1 ]3)+ … = Ija- [ 1 ]N.= ( I+ [ 5 ] + [ 5 ]2)+ [ 5 ]3)+ … ) P= Pja- [ 5 ]D = ( I+ [ 10 ] + [ 10 ]2)+ [ 10 ]3)+ … ) N= Nja- [ 10 ]Q = ( I+ [ 25 ] + [ 25 ]2)+ [ 25 ]3)+ … ) D = Dja- [ 25 ]H.= ( I+ [ 100 ] + [ 100 ]2)+ [ 100 ]3)+ … ) Q = Qja- [ 100 ]
Jeśli chcesz liczyć, a nie tylko wyliczyć sposoby wprowadzania zmian, istnieje prosty sposób na wykorzystanie uzyskanych przez nas serii formalnych. Zastosuj homomorfizm
Współczynnik w to liczba sposobów podania centów w zamian.
S.:[ 1 ] ↦ X,[ 5 ] ↦ X5,[ 10 ] ↦ X10, [ 25 ] ↦ X25, [ 100 ] ↦ X100
XvS.( C)v
Trudniejszy przykład: załóżmy, że chcesz przestudiować wszystkie sposoby układania prostokątów domino 2 × 1. Na przykład istnieją dwa sposoby na ułożenie prostokąta 2 × 2 za pomocą dwóch poziomych domino lub dwóch pionowych domino. Zliczanie liczby sposobów na kafelkowanie prostokąta jest dość łatwe, ale przypadek szybko staje się nieoczywisty. Możemy wyliczyć wszystkie możliwe nachylenia poziomego pasma wysokości 3, sklejając domino razem, co szybko daje powtarzalne wzory:
2 × n3 × n
⎧⎩⎨⎪⎪⎪⎪⎪⎪U= o + L V.+ Γ Λ + ≡ UV.= JaU+ =-V.Λ =jaU+-=Λ
gdzie śmieszne kształty reprezentują elementarne aranżacje domina: to nie domino, to pionowe domino na górze lewej części poziomego domina, to pionowe domino wyrównane do dolnej części pasma o wysokości 3, to poziome domino wyrównane do górnej części pasma plus dwa poziome domino poniżej i jeden krok w prawo, itd. Mnożenie reprezentuje konkatenację poziomą i nie jest przemienne, ale istnieją równania między wzorcami elementarnymi, które tworzą zmienne w tej serii mocy. Tak jak poprzednio w przypadku monet, możemy zastąpić każdym domino i uzyskać serię generującą liczbę przechyleń
oL.ja-=X3 × ( 2 n / 3 )Prostokąt (tj. Współczynnik to liczba sposobów na ułożenie prostokąta o powierzchni , która zawiera domina i ma szerokość ). Z tej serii można również korzystać w bardziej uniwersalny sposób; na przykład, rozróżniając domino pionowe i poziome, możemy liczyć przechylenia z określoną liczbą domino pionowych i poziomych.
X3 tys6 tys3 tys2 tys
Ponownie przeczytaj Matematykę konkretną, aby uzyskać mniej pochopną prezentację.
¹ Wiem, że moja lista jest niekompletna; Załóżmy, że USA są uproszczone i odpowiednie dla przykładów matematycznych.
² ² Także, jeśli się pojawi, załóż monety sferyczne.
³ I lepszy skład.