2015年9月21日月曜日

150921(3)

Ruby


階段状に現れるフィボナッチ数列

(n が増えると形が崩れてくるが)きれいに並んでいる。

def f(m, n)
  l = m - n
  ary = Array.new(l, 1)
  p ary
  n.times{|i|
    new_ary = ary.clone
    new_ary.shift
    (1..new_ary.size - 1).each{|i|
      new_ary[i] += new_ary[i - 1]
    }
    new_ary.push(new_ary[-1])
    ary = new_ary
    p [0] * (i + 1) + ary
  }
end

l = 4
n = 6
m = n + l
f(m, n)

出力結果
[1, 1, 1, 1]
[0, 1, 2, 3, 3]
[0, 0, 2, 5, 8, 8]
[0, 0, 0, 5, 13, 21, 21]
[0, 0, 0, 0, 13, 34, 55, 55]
[0, 0, 0, 0, 0, 34, 89, 144, 144]
[0, 0, 0, 0, 0, 0, 89, 233, 377, 377]

0 件のコメント:

コメントを投稿

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