証明問題なので、この記事でやることはただの実験に過ぎません。
によって数列 を定めるとき次式が成り立つことを示せ、というものです。
さて実験してみましょう。二項係数の計算部分については以下のサイトを参考にしました。
tsujimotter.hatenablog.com
# -*- coding: utf-8 -*- module Define module_function # 2項係数を計算する def binom(n,k) k = [k, n-k].min if (k==0) then val = 1 else val = Define::binom(n-1,k-1)*n/k end return val end end if __FILE__ == $0 then nmax = 10 aa = Array.new(nmax+1) bb = Array.new(nmax+1) # --- 漸化式による計算 --- # aa[1] = 1; aa[2] = 2; aa[3] = 3 for nn in 1..nmax-3 aa[nn+3] = aa[nn+2] + aa[nn] end # --- 二項係数による総和 --- # for nn in 1..nmax sum = 0 for kk in 0..((nn+1)/3) sum += Define::binom(nn+1-2*kk,kk) end bb[nn] = sum end # --- 結果の出力 --- # p aa p bb p aa==bb end
実行してみた結果が以下のとおりです。ちゃんと成立していますね。
$ ruby main.rb [nil, 1, 2, 3, 4, 6, 9, 13, 19, 28, 41] [nil, 1, 2, 3, 4, 6, 9, 13, 19, 28, 41] true