2016年5月18日水曜日

160518

Ruby


Goldbach's conjecture(4)

x^(2 + 2) + (x^5 + x^13 + x^17 + … )(x^3 + x^7 + x^11 + x^19 + … )
= x^4 + x^8 + x^12 + 2x^16 + 2x^20 + 3x^24 + …

x^(4 * n) の係数が正
ということが成り立つとして、
その係数を列挙してみる。

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

require 'prime'

# m次以下を取り出す
def mul(f_ary, b_ary, m)
  s1, s2 = f_ary.size, b_ary.size
  ary = Array.new(s1 + s2 - 1, 0)
  s10 = [s1 - 1, m].min
  (0..s10).each{|i|
    s20 = [s2 - 1, m - i].min
    (0..s20).each{|j|
      ary[i + j] += f_ary[i] * b_ary[j]
    }
  }
  ary
end

def A069360(n)
  m = 4 * n
  ary1 = Array.new(m + 1, 0)
  Prime.each(m).select{|i| i % 4 == 1}.each{|i| ary1[i] = 1}
  ary3 = Array.new(m + 1, 0)
  Prime.each(m).select{|i| i % 4 == 3}.each{|i| ary3[i] = 1}
  a = mul(ary1, ary3, m)[0..m]
  a.delete(0)
  # (2 + 2) / 2 = 2 * 1の分
  [1] + a
end
ary = A069360(80)

# OEIS A069360のデータ
ary0 =
[1,1,1,2,2,3,2,2,4,3,3,5,3,3,6,5,2,6,5,4,8,4,4,7,
 6,5,8,7,6,12,5,3,9,5,7,11,5,4,11,8,5,13,6,7,14,8,
 5,11,9,8,14,7,6,13,9,7,12,7,9,18,9,6,16,8,10,16,9,
 7,16,14,8,17,8,8,21,10,8,17,10,11]
# 一致の確認
p ary == ary0

0 件のコメント:

コメントを投稿

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