2

母関数と漸化式

285
0

 この記事は以下の問題を解くことを目標にします。

座標平面上の原点にいる A 君はワープを習得しました.以下の手順でワープは行われます.

  • 非負整数の組 (n,m)((0,0)) を選び宣言する.
  • 座標 (x,y) にいるとき (x+n,y+m) へと移動する.

A 君は最小値が奇数であるような整数組が好きなので, min(n,m)1(mod2) が成り立つ (n,m) を選びワープすることを有限回繰り返し, 目的地 (N,M) へと移動することを考えています.  
 このとき移動の仕方の総数を f(N,M) とするとき, f(N,M) について, (N,M) がある条件を満たすとき常に有限個の項で書き表される漸化式が存在するのでそれを求めてください.

例題をいくつか解きましょう。

例題.1

 区別のない n 個のビー玉があり,これらを何回かに分けて 1 つの袋に入れることを考えます.袋に一度に入れるビー玉の個数が,常に 6 で割ると 12 余る正整数になるようにするとき,入れ方は f(n) 通りあるとするとき, f(n) の漸化式を求めてください.

 条件をみたしながら k 回に分けて玉を合計 n 個入れるとき, 1,2,,k 回目に入れた玉の個数を c1,c2,,ck とすると,

  • c1+c2+ck=n
  • ci1,2(mod6)(i=1,2,,k)
    を満たす正整数の組 (c1,c2,,ck) の個数を数え上げる問題になります.
    よって, k を固定した時の答えは以下のxn の係数になります.
    (n1,2(mod6) n0xn)k=(x+x2+x7+x8+)k=(x(1+x6+x12+)+x2(1+x6+x12+))k=(x11x6+x211x6)k=(x+x21x6)k
     答えはこれを k=0,1,2, にて, 和を取れば求まるので, 先に母関数の和を取った以下の xn の係数になります.
    k=0(x+x21x6)k=11x+x21x6=1x61xx2x6
     上の冪級数を k=0akxk とすると, 以下が成立します. ( n<0 について, an=0 とします.)
    (1xx2x6)k=0akxk=k=0(akak1ak2ak6)xk
     一方これは
    x+x21xx2x6×(1xx2x6)=1x6
    であるため,
    k=0(akak1ak2ak6)xk=1x6
    xk の係数を比較することで, k{0,6} にて,漸化式
    akak1ak2ak6=0
    が成立します. (問題の表記に従うとf(n)f(n1)f(n2)f(n6)=0 となります. )
    これは数直線上での (x)(x+6n+1),(x+6m+2) のワープの問題と考えることもできます.次は座標平面の問題を考えてみます.

例題.2

 座標平面上の原点にいる A 君はワープを習得しました.以下の手順でワープは行われます.

  • 非負整数の組 (n,m)((0,0)) を選び宣言する.
  • 座標 (x,y) にいるとき (x+n,y+m) へと移動する.

A 君は上の手順で行われるワープを有限回繰り返し, 目的地 (N,M) へと移動することを考えています.  
 このとき移動の仕方の総数を f(N,M) とするとき, f(N,M) について, (N,M) がある条件を満たすとき常に有限個の項で書き表される漸化式が存在するのでそれを求めてください.

 先程の問題と同じくまずワープを行う回数を k 回と固定します. 1,2,,k 回目に宣言した整数の組を (x1,y1),(x2,y2),,(xk,yk) とすると,

  • (x1,y1)+(x2,y2)+(xk,yk)=(N,M)
  • (xi,yi)0(i=1,2,,k)
    を満たすZ02の組 ((x1,y1),(x2,y2),,(xk,yk)) の個数を数え上げる問題になります.
    よって, k を固定した時の答えは以下のxNyM の係数になります.
    ((n,m)(0,0)xnym)k=(n,m>0xnymx0y0)k=((1+x+x2+)(1+y+y2+)1)k=(11x11y1)k=(x+yxy(1x)(1y))k
     これを k=0,1,2, にて, 和を取れば
    k=0(x+yxy(1x)(1y))k=11x+yxy(1x)(1y)=1xy+xy(1xy+xy)(x+yxy)=1xy+xy12x2y+2xy
    この冪級数を n,man,mxnym とすると, 分母の式 12x2y+2xy をかけることで,
    n,m(an,m2an1,m2an,m1+2an1,m1)xnym=1xy+xy
    が成立し, (n,m){(0,0),(1,0),(0,1),(1,1)} にて, xnym の係数を比較することで、
    an,m2an1,m2an,m1+2an1,m1=0
    すなわち,
    f(N,M)2f(N1,M)2f(N,M1)+2f(N1,M1)=0
    が得られます.
    余談ですが, f(N,M)=nN,mM (n,m)(N,M)f(n,m) であり,
    2f(N,M)=nN,mM (n,m)(N,M)f(n,m)+f(N,M)=nN,mMf(n,m)
    が成り立ち,
    図のように以下の式の項とそれぞれ対応を取ると実際に成り立つことがわかります.
    f(N,M)=2f(N1,M)+2f(N,M1)2f(N1,M1)

    では本題を解いてみます.

本題

座標平面上の原点にいる A 君はワープを習得しました.以下の手順でワープは行われます.

  • 非負整数の組 (n,m)((0,0)) を選び宣言する.
  • 座標 (x,y) にいるとき (x+n,y+m) へと移動する.

A 君は最小値が奇数であるような整数組が好きなので, min(n,m)1(mod2) が成り立つ (n,m) を選びワープすることを有限回繰り返し, 目的地 (N,M) へと移動することを考えています.  
 このとき移動の仕方の総数を f(N,M) とするとき, f(N,M) について, (N,M) がある条件を満たすとき常に有限個の項で書き表される漸化式が存在するのでそれを求めてください.

これまでと同様に考えると宣言することのできる整数組の集合を S とすると f(N,M)
11(n,m)Sxnym
xNyM の係数となります.
S={(n,m)Z02|min(n,m)1(mod2)}
について, (n,m)Sxnym を求めてみましょう.
min(i,j)=k となる (i,j) について, 単項式 xiyj の和をとると以下のようになります.
min(i,j)=kxiyj=min(i,j)kxiyjmin(i,j)k+1xiyj=min(i,j)0xk+iyk+jmin(i,j)0xk+1+iyk+1+j=xkykmin(i,j)0xiyjxk+1yk+1min(i,j)0xiyj=xkyk(1x)(1y)xk+1yk+1(1x)(1y)=(1xy)(1x)(1y)xkyk
したがって,
(n,m)Sxnym=k=0min(n,m)=2k+1xnym=k=0(1xy)(1x)(1y)(xy)2k+1=(1xy)(1x)(1y)xy1x2y2=xy(1x)(1y)(1+xy)
これより,
$$ 11(n,m)Sxnym=11xy(1x)(1y)(1+xy)=(1x)(1y)(1+xy)(1x)(1y)(1+xy)xy=1xy+2xyx2yxy2+x2y21xy+xyx2yxy2+x2y2}
$$ したがって, (N,M){(0,0),(1,0),(0,1),(1,1),(2,1),(1,2),(2,2)} にて f(N,M)f(N1,M)f(N,M1)+f(N1,M1)f(N2,M1)f(N1,M2)+f(N2,M2)=0 が成立します. 母関数を用いずに導出する方法を思いついた方がいらっしゃいましたら教えてください!ここまで読んでくださりありがとうございました!!

投稿日:27
更新日:27
OptHub AI Competition

この記事を高評価した人

高評価したユーザはいません

この記事に送られたバッジ

バッジはありません。
バッチを贈って投稿者を応援しよう

バッチを贈ると投稿者に現金やAmazonのギフトカードが還元されます。

投稿者

MARTH
MARTH
33
4563
OMC黄

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中