22

k-ナッチ数列の加法定理を求める

501
2

追記

添え字の間違いを直しました(2025/06/07 02:17)

フィボナッチ数列の加法定理

フィボナッチ数列というのはみなさん知っているかと思われます

{F0=0F1=1Fn+1=Fn+Fn1

このフィボナッチ数列には加法定理があるらしく、

Fm+n=Fm1Fn+FmFn+1

となるらしいです。

帰納法による証明や、一般項の公式を使ったり、三角関数表示したり、行列の冪乗表示から証明したりしているものがありましたが、帰納法で証明したいと思います。

しかし、この式を最初に思いついた人はどうやって思いついたんでしょうか?

それはわからないです。(調べてないから)
でもこうすると思いついけます。

発想

Fn+1=Fn+Fn1Fn+2=Fn+1+Fn=Fn+Fn1+Fn=2Fn+Fn1Fn+3=Fn+2+Fn+1=2Fn+Fn1+Fn+Fn1=3Fn+2Fn1

おや、見た感じにFnFn1で表せそうですよね
じゃぁ、Fn+kFnFn1でこう表せるとします

Fn+k=a(k)Fn+b(k)Fn1

ここでa(k)b(k)は何かいい感じの整数だとします。


最初の方は
Fn+0=a(0)Fn+b(0)Fn1=1Fn+0Fn1Fn+1=a(1)Fn+b(1)Fn1=1Fn+1Fn1
なので、a(0)=1,b(0)=0,a(1)=1,b(1)=1と分かります。


ここで、この次のFn+(k+1)を考えると、
Fn+k+1=a(k+1)Fn+b(k+1)Fn1
しかも、こうもできます
Fn+k+1=Fn+k+Fn+k1=a(k)Fn+b(k)Fn1+a(k1)Fn+b(k1)Fn1=(a(k)+a(k1))Fn+(b(k)+b(k1))Fn1
ほう。じゃあ
a(k+1)=a(k)+a(k1)b(k+1)=b(k)+b(k1)
となってくれないと困りますね。



...
ん???
んん???


これってフィボナッチ数列そのものじゃないですか?

a(0)=1,a(1)=1a(k+1)=a(k)+a(k1)b(0)=0,b(1)=1b(k+1)=b(k)+b(k1)

ってことは、b(k)はそのまんまフィボナッチ数列Fkだし、
a(k)はそれの一つずれたもので、Fk+1じゃないですか?

ということで、フィボナッチ数列の加法定理が

フィボナッチ数列の加法定理

Fn+k=Fk+1Fn+FkFn1

となるんですね。

トリボナッチ数列

トリボナッチ数列というものがあります。

{T0=0T1=0T2=1Tn+1=Tn+Tn1+Tn2

これはこんな感じの数列になります
0,0,1,1,2,4,7,13,24,44,81,149,274,504,927,1705,3136,5768,10609,19513,35890,66012,121415,223317,410744,755476,1389537,2555757,4700770,8646064,15902591,29249425,53798080,98950096,181997601,334745777,615693474,1132436852,

このトリボナッチ数列にも同じように加法定理はあるのでしょうか?
ありそう。

発想

さっきと同じようにしてみます。


Tn+k=a1(k)Tn+a2(k)Tn1+a3(k)Tn2

こう表されるとします。
すると、Tn+k+12通りの方法で表されます。
Tn+k+1=a1(k+1)Tn+a2(k+1)Tn1+a3(k+1)Tn2Tn+k+1=Tn+k+Tn+k1+Tn+k2
=a1(k)Tn+a2(k)Tn1+a3(k)Tn2+a1(k1)Tn+a2(k1)Tn1+a3(k1)Tn2+a1(k2)Tn+a2(k2)Tn1+a3(k2)Tn2
=(a1(k)+a1(k1)+a1(k2))Tn+(a2(k)+a2(k1)+a2(k2))Tn1+(a3(k)+a3(k1)+a3(k2))Tn2


(できるだけわかりやすく書いたつもり)


これらが同じなので、Tn,Tn1,Tn2の係数を比較してあげると、

a1(k+1)=a1(k)+a1(k1)+a1(k2)a2(k+1)=a2(k)+a2(k1)+a2(k2)a3(k+1)=a3(k)+a3(k1)+a3(k2)

となりました
きれい


こうなってくると初期値が重要ですよね
さっきはFn+0,Fn+1で考えたので、Tn+0,Tn+1,Tn+2でやろうかな
と思っていたのですが、
Tn0,Tn1,Tn2でやったほうが簡単だということに気づきました


Tn0=1Tn+0Tn1+0Tn2Tn1=0Tn+1Tn1+0Tn2Tn2=0Tn+0Tn1+1Tn2


たしかに簡単になった
a1(0)=1,a2(0)=0,a3(0)=0a1(1)=0,a2(1)=1,a3(1)=0a1(2)=0,a2(2)=0,a3(2)=1

なんかこう、図にしたい気分ですね
a1(0)とか書くとややこしいので、Tn,Tn1,Tn2の係数だけ書きます。
それがこう。


TnTn1Tn2
Tn2001
Tn1010
Tn100
Tn+1111
Tn+2221
Tn+3432
Tn+4764
Tn+513117
Tn+6242013

htmlで書くのは大変ですね。(Mathlogの表のしましまデザインが気になった)
例えば、Tn+5=13Tn+11Tn1+7Tn2を表しています。

この表を作るのは単純で、
Tn+k+1=Tn+k+Tn+k1+Tn+k2
なのでTn+k+1の行を作りたかったらTn+kの行とTn+k1の行とTn+k2の行を縦に足せばいいんですね。
例えばTn+5ならTn+4Tn+3Tn+2 つまり上の3行を縦に足せばよくて、
2+4+7=132+3+6=111+2+4=7
という感じです。
ここで気づいたことがあります。


気づいたこと

1つめ

一番右の列、Tn2がトリボナッチ数列じゃないですか?
最初こそ1ですが、それさえ無視すれば0,0,1,1,2,4,7,13,と、
確かにトリボナッチ数列になっています。

これはなぜかというと、Tn1,Tn,Tn+1の行のときのTn2の列が

Tn2
Tn10
Tn0
Tn+11

という風になっているからです。これはトリボナッチ数列の初期値
T0=0,T1=0,T2=1
と完全に一致しています。
次の行も上の三つの値の和なので、完全にトリボナッチ数列と同じ構成方法になっているんですね。

kとの対応を考えるとTk+1になります。

Tn2
Tn10
Tn0
Tn+11
Tn+21
Tn+32
Tn+kTk+1


2つ目

気づいたことはもう一つあって、
よく見るとこういう関係があります。

TnTn1Tn2
Tn2001
Tn1010
Tn100
Tn+1111
Tn+2221
Tn+3432
Tn+4764
Tn+513117
Tn+6242013

Tn2の列の水色のところを足すとTn1の列の水色のところになり、
Tn2の列の緑色のところを足すとTnの列の緑色のところになるんですよね。
これは他の場所でも成り立ちます。

TnTn1Tn2
Tn2001
Tn1010
Tn100
Tn+1111
Tn+2221
Tn+3432
Tn+4764
Tn+513117
Tn+6242013

ほら。


証明

一つ目(Tn1)

これはどうやったら証明できるのでしょうか?
真ん中の列について考えてみましょう

Tn1
Tn20
Tn11
Tn0
Tn+11
Tn+22
Tn+33
Tn+46
Tn+511
Tn+620


横に並べますか?
0,1,0,1,2,3,6,11,20

これは

0101236

こんな感じで前3つを足していってますね。
これを、
こうするとどうでしょう

01001

最初に足したやつをそのまま横に書くのではなく、一つ下の行に書きます。
横に書くのは0にします。


そして、
0100111

両方の行で前3つを足して横に書きます。

もう一度。

010011112

もう一度。

01001121124

もう一度。

0100112411247

もう一度。

0100112471124713


気づきましたか?

これを縦に足すとさっきの数列になります。

010011247+1124713
01012361120

まぁそりゃそうですよね。

さっきのをこう見ると分かります。
0100+10101

そして、

0100111+01012

もう一度。

010011112+010123

もう一度。

01001121124+0101236

もう一度。

0100112411247+010123611

もう一度。

0100112471124713+01012361120


「そりゃそうだな」 ってなりましたか?
そして、この分けた数列はトリボナッチ数列そのものになっています。

なぜなら、001となる部分があり、この後ずっと
3つを足して横に書く
という操作をし続けるので、これはトリボナッチ数列の構成の仕方そのものになっているからです。

実際の項数を考えると

T0T1T2T3T4T5T6Tk0100112471124713+T2T3T4T5T6T7Tk+101012361120Tn2Tn1TnTn+1Tn+2Tn+3Tn+4Tn+5Tn+6Tn+k

よって真ん中の数列はTk+Tk+1であることが分かりました

a2(k)=Tk+Tk+1

(書くのしんどい...)


証明2(Tn)

もう一つの方も同じように証明できます
(これは証明なのか???)

TnTn1Tn2
Tn2001
Tn1010
Tn100
Tn+1111
Tn+2221
Tn+3432
Tn+4764
Tn+513117
Tn+6242013

これの緑のところね。

水色はさっきやりました。



さっきと同じようにやりたいだけです。

0010+10011

ただ、もう一つ下の3行目に書いておきます。
そして、

0010011100112

ということもしておきます。

よく見てください。両方の行で前3つを足しているだけです。

ただし1行目はそのまま横に書くのではなく、下の2行目に書いています。

3行目はそのまま横に書いています。

気づいた人もいるかもしれませんが、上の2つの行はさっき証明したやつと全く同じ形をしています。

無視してどんどん行きましょう。

00100111112+001124

もう一度。

00100111121124+0011247

もう一度。

00100112112411247+001124713

もう一度。

001001124112471124713+00112471324


ということで、

T0T1T2T3T4T5Tk1001001124T2T3T4T5T6Tk11247T2T3T4T5T6T7Tk+1112471300112471324Tn2Tn1TnTn+1Tn+2Tn+3Tn+4Tn+5Tn+6Tn+k

となり、一番左の列はTk1+Tk+Tk+1だと分かりました。

a1(k)=Tk1+Tk+Tk+1

(知ってた)




結論

最終的に、表はこうなります。


TnTn1Tn2
Tn2001
Tn1010
Tn100
Tn+1111
Tn+2221
Tn+3432
Tn+4764
Tn+513117
Tn+6242013
Tn+kTk1+Tk+Tk+1Tk+Tk+1Tk+1

ということで、

トリボナッチ数列の加法定理

Tn+k=(Tk1+Tk+Tk+1)Tn+(Tk+Tk+1)Tn1+Tk+1Tn2

が証明できました。

k-ナッチ数列

k-ナッチ数列というものがあります。

{Wi=0(0ik2)Wk1=1Wn+1=Wn+Wn1+Wn2++Wnk+1=i=1kWni+1

まあ要はk個前まで足したやつを次の項にするというだけの、
フィボナッチ数列やトリボナッチ数列の拡張です。

このk-ナッチ数列にも加法定理はあるのでしょうか。



あります。(唐突な断言)

まぁさっきと全く同じことをすればいいです。

さすがに表やグラフは書きませんよ?


発想

発想もクソもないです。さっきと全く同じようにしてみます。


Wn+m=a1(m)Wn+a2(m)Wn1+a3(m)Wn2++ak(m)Wnk+1=i=1kai(m)Wni+1

こう表されるとします。

すると、Wn+m+12通りの方法で表されます。

Wn+m+1=a1(m+1)Wn+a2(m+1)Wn1+a3(m+1)Wn2++ak(m+1)Wnk+1Wn+m+1=Wn+m+Wn+m1+Wn+m2++Wn+mk+1
=a1(m)Wn+a2(m)Wn1+a3(m)Wn2++ak(m)Wnk+1+a1(m1)Wn+a2(m1)Wn1+a3(m1)Wn2++ak(m1)Wnk+1+a1(m2)Wn+a2(m2)Wn1+a3(m2)Wn2++ak(m2)Wnk+1+a1(m3)Wn+a2(m3)Wn1+a3(m3)Wn2++ak(m3)Wnk+1+a1(mk+1)Wn+a2(mk+1)Wn1+a3(mk+1)Wn2++ak(mk+1)Wnk+1
=(a1(m)+a1(m1)+a1(m2)++a1(mk+1))Wn+(a2(m)+a2(m1)+a2(m2)++a2(mk+1))Wn1+(a3(m)+a3(m1)+a3(m2)++a3(mk+1))Wn2+(ak(m)+ak(m1)+ak(m2)++ak(mk+1))Wnk+1

(できるだけわかりやすく書いたつもり(無理がある))


こういう時のためにシグマがあるんじゃないですか

Wn+m+1=i=1kai(m+1)Wni+1Wn+m+1=j=1kWn+mj+1=j=1ki=1kai(mj+1)Wni+1=i=1kj=1kai(mj+1)Wni+1=i=1kWni+1j=1kai(mj+1)


これらが同じなので、Wni+1の係数を比較してあげると、

ai(m+1)=j=1kai(mj+1)(1ik)

となりました

しんぷる

というかこれはk-ナッチ数列の定義と全く同じ構造をしています。
Wn+1=i=1kWni+1ai(m+1)=j=1kai(mj+1)


初期値が重要なんでした

Wni=0Wn+0Wn1+0Wn2++0Wni1+1Wni+0Wni+1++0Wnk+1ai+1(i)=1(0ik1)aj+1(i)=0(ij,0ik1,0jk1)

となります。


トリボナッチ数列から学んだこと

まとめて書くのは便利ですが、やはり具体性がなくなりますね。

先ほどのトリボナッチ数列の結果から、このような予想が立ちます。

1つめ

1

ak(m)=Wk+m2

これは一番右の列(ak(m))がそのまま元の数列と同じものだという、
気づいたこと1に対応するものです

2つめ

2

aki(m)=t=0iak(mt)(0ik1)

これは気づいたこと2に対応するものです。表のやつ。


証明

証明とは。

1つめ

1つ目は余裕ですね。

ak()の情報は

ai(m+1)=j=1kai(mj+1)(1ik)
から、i=kとしたらいいですね。
ak(m+1)=j=1kak(mj+1)

これは、k-ナッチ数列と同じ構造をしているのでした。(さっき言った)

初期値が重要なんです(さっき言った)

ai+1(i)=1(0ik1)aj+1(i)=0(ij,0ik1,0jk1)

なので、

ak(1k)=1
ak(i)=0(ik1,0ik1)ak(i)=0(0ik2)ak(i)=0(2ki0)

と分かります。


ここで、

ak(m+1)=j=1kak(mj+1)

さっきのこの式にm=0をぶち込みます
すると、

ak(1)=j=1kak(1j)=ak(0)+ak(1)+ak(2)++ak(2k)+ak(1k)=0+0+0++0+1=1

となりました。


ここでk-ナッチ数列の定義を見てみましょう

{Wi=0(0ik2)Wk1=1Wn+1=i=1kWni+1

この式を改めて、Wn=Xnk+2に変えてみましょう

{Xik+2=0(0ik2)Xk1k+2=1Xn+1k+2=i=1kXni+1k+2

(0ik2)(2kik+20)と変形できるので、

{Xi=0(2ki0)X1=1Xnk+3=i=1kXnik+3

あとnkm2に変えておきます


{Xi=0(2ki0)X1=1Xm+1=i=1kXmi+1


はい。これでさっきのak()と同じものになりました

ak(i)=0(2ki0)ak(1)=1ak(m+1)=j=1kak(mj+1) 

よってak(m)=Xm=Wm+k2というのが証明できました。

ak(m)=Xm=Wm+k2


2つめ

これも式をいじって証明したい。

トリボナッチ数列では、最初の足し算を一つ下の行に 分けて 書いて足していましたね。
最初の足し算を分けることで分けたやつそれぞれがトリボナッチ数列に対応していました。

なので分ける方針を考えます

ベクトルか
数が並んでいればなんでもいいのですがね。


まず初期値から

特定の定数pで考えてみます。(0pk1) 素数じゃないよ

ai+1(i)=1(0ik1)aj+1(i)=0(ij,0ik1,0jk1)

2つあるうちの上のやつでikp1にすると

akp(1+pk)=1

下のやつではjkp1にすると、

akp(i)=0(ikp1,0ik1)akp(i)=0(i1+pk,1ki0)

となります。


次はこれ

ai(m+1)=j=1kai(mj+1)(1ik)

ikpを代入します

akp(m+1)=j=1kakp(mj+1)=akp(m)+akp(m1)+akp(m2)++akp(mk+2)+akp(mk+1)


戦略

逆に言えばak(m)=Wm+k2というのをさっき証明したので、

akp(m)=t=0pak(mt)

じゃなくてもう直接

akp(m)=t=0pWmt+k2

を示したらいいんじゃないですかね?


初期値に注意して計算すれば示せるはずです。
akp(k+1)akp(k+2)akp(k+3)akp(k+p+1)akp(1)akp(0)0001(ここだけ)00

こういう感じです。
akp(1)k+10で、上に書いたやつらの和なので1になります。

akp(2)k+21までの和です。つまり
akp(1)akp(k+p+1)1の和なので、
akp(2)=akp(1)+1
です。

akp(3)k+32までの和で、
akp(1),akp(2)と、akp(k+p+1)1の和なので、
akp(3)=akp(2)+akp(1)+1


このままずっとこうなりますね。
一般に、akp(i)k+ii1までの和で、
akp(1),akp(2),,akp(i1)までの和と、akp(k+p+1)1の和なので
akp(i)=akp(1)+akp(2)++akp(i1)+1
となります。


どこまで続くかというと、akp(p+1)です。

akp(p+1)k+p+1pまでの和で、

akp(1),akp(2),,akp(p)の和と、akp(k+p+1)1の和です。
ギリギリ入ります
akp(p+1)=akp(1)+akp(2)++akp(p)+1=1+i=1pakp(i)


なのでさっきのは1ip+1として

akp(i)=akp(1)+akp(2)++akp(i1)+1

となります。

ここまでを見て、これがt=0pWit+k2と等しいと言えないでしょうか?


示したい等式の右辺から左辺を導きたい。
akp(m)=t=0pWmt+k2

右辺にm=1を入れると、

Wk1+Wk2+Wk3++Wkp1

これはWk1だけ1で、他は0なので
1となってakp(1)と等しいです。
(W0Wk2は全部0という定義)

ここで言いたいことがあって、
Wkp1の後、Wkp2,Wkp3,Wkp4,,W0までも全て0なんですから、

Wk1+Wk2+Wk3++Wkp1=Wk1+Wk2+Wk3++Wkp1+Wkp2++W0=Wk
と言えます。

よって、
akp(1)=Wk
と言えます。


m=2を入れると、

Wk+Wk1+Wk2+Wk3++Wkp=akp(1)+Wk1+Wk2+Wk3++Wkp

ここで、先ほども言いましたがWk1だけが1で、他は0なので
akp(1)+1
となり、これはakp(2)と等しいです。

また言いたいことなのですが、Wkpの後、Wkp1,Wkp2,,W0はやっぱり0なので、

Wk+Wk1+Wk2+Wk3++Wkp=Wk+Wk1+Wk2+Wk3++Wkp+Wkp1+Wkp2++W1=Wk+1

よって、
akp(2)=Wk+1と言えます。


もう一つ行きましょう。m=3を入れます。
Wk+1+Wk+Wk1+Wk2++Wkp+1=akp(2)+akp(1)+Wk1+Wk2+Wk3++Wkp+1

また言いますが、Wk1だけが1で、他は0なので
akp(2)+akp(1)+1
となり、これはakp(3)と等しいです。

またまた言いたいことなのですが、Wkp+1の後、Wkp,Wkp1,Wkp2,,W0はやっぱり0なので、

Wk+1+Wk+Wk1+Wk2+Wk3++Wkp+1=Wk+1+Wk+Wk1+Wk2+Wk3++Wkp+1+Wkp+Wkp1++W2=Wk+2

よって、
akp(3)=Wk+2と言えます。


はい一般化~
仮定として(2ip+1)

akp(1)=Wk,akp(2)=Wk+1,akp(3)=Wk+2,,akp(i1)=Wk+i2

が成り立っているとします。

m=iを代入すると

Wk+i2+Wk+i3+Wk+i4++Wkp+i2=akp(i1)+akp(i2)+akp(i3)++akp(1)+Wk1++Wkp+i2

となって、Wk1=1かつ、Wk2W0までは0なので、

=akp(i1)+akp(i2)+akp(i3)++akp(1)+1
となり、これはakp(i)に等しいです。

また、Wkp+i2の後、Wkp+i3,Wkp+i4,,W0までも0なので、

Wk+i2+Wk+i3+Wk+i4++Wkp+i2=Wk+i2+Wk+i3+Wk+i4++Wkp+i2+Wkp+i3++Wi1=Wk+i1

と言えるので、

akp(i)=Wk+i1
と言えます。

よっしゃぁ


あとは累積帰納法によって、すべての2ip+1に対して

akp(i)=Wk+i2+Wk+i3+Wk+i4++Wkp+i2

と分かりました。

(0pk1)なので、予想はあってたということです。

aki(m)=t=0iWk+mt2=t=0iak(mt)(0ik1)

これで、全貌がつかめました。


まとめて

まとめると、

aki(m)=t=0iWk+mt2

なので、ikiに改めると、
ai(m)=t=0kiWk+mt2
t0kiなので、ktkiより、
ai(m)=t=ikWt+m2

これを

Wn+m=i=1kai(m)Wni+1

へぶち込めば!

k-ナッチ数列の加法定理

Wn+m=i=1kWni+1t=ikWt+m2

となりました(えぐ)

おわり

おわりです。

投稿日:18日前
更新日:15日前
OptHub AI Competition

この記事を高評価した人

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

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

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

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

投稿者

Y.K.
Y.K.
166
8079
掛け算が苦手

コメント

他の人のコメント

コメントはありません。
読み込み中...
読み込み中
  1. 追記
  2. フィボナッチ数列の加法定理
  3. 発想
  4. トリボナッチ数列
  5. 発想
  6. 気づいたこと
  7. 証明
  8. 結論
  9. $k$-ナッチ数列
  10. 発想
  11. トリボナッチ数列から学んだこと
  12. 証明
  13. まとめて
  14. おわり