p(Fn | 和因子はフィボナッチ数)(2)
def A000045(n)
a, b = 0, 1
ary = [a]
i = 0
while i < n
ary << b
a, b = b, b + a
i += 1
end
ary
end
def A098641(n)
return [1] if n == 1
ary = A000045(n)[2..-1]
m = ary[-1]
ps = Array.new(m + 1){0}
ps[0] = 1
a_ary = [1]
ary.each{|num|
(num..m).each{|i|
ps[i] += ps[i - num]
}
a_ary << ps[num]
}
a_ary
end
p A098641(37)
出力結果
[1, 1, 2, 3, 6, 14, 41, 157, 803, 5564, 53384, 718844, 13783708, 380676448, 15298907733, 902438020514, 78720750045598, 10220860796171917, 1986422867300209784, 580763241873718042562, 256553744608217295298827, 171912553856721407543178940, 175350753369071026461010505478, 273116453992415679691255706885970, 651429987008173036810465648509948195, 2385582065397945424930256464926036188632, 13444881083557072339231220089112692845967023, 116868939532344964399575983214201364849810071550, 1569960751357060463075457330723559333110008524516529, 32653305894128813337034041132850627847635384420052701769, 1053308881973023044565669098421410192842748999937332585454870, 52779208124598957859072936537155351471874889939313366202920028446, 4114234328148606845952939486878218676775449777211179757739825392011244, 499610569974357445625866327196542398434661011535221909478584586592575661097, 94634415263809625297241947308059635816480834279095163571912726152113856158593855, 27993975858090338912752085677914311721784389175850180898261294283377276313636087192303, 12946995750332965165480631942881728877721525211953330788687487937642928519967940203995914105]
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。