2015年12月30日水曜日

151230(2)

Ruby


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 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。