2015年5月31日日曜日

150531(2)

Ruby


Gauss circle problem(1)

オンライン整数列大辞典の
A000328(http://oeis.org/A000328/list)
と比較し、答え合わせしてみる。

def f(r)
  s = 0
  q = r * r
  i = 1
  while q >= 2 * i - 1
    s0 = q / (2 * i - 1)
    if i % 2 == 1
      s += s0
    else
      s -= s0
    end
    i += 1
  end 
  s * 4 + 1
end
ary = (0..46).map{|i| f(i)}

# OEIS A000328のデータ
ary0 =
[1,5,13,29,49,81,113,149,197,253,317,377,441,529,
 613,709,797,901,1009,1129,1257,1373,1517,1653,
 1793,1961,2121,2289,2453,2629,2821,3001,3209,3409,
 3625,3853,4053,4293,4513,4777,5025,5261,5525,5789,
 6077,6361,6625]
# 一致の確認
p ary == ary0

0 件のコメント:

コメントを投稿

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