2015年12月31日木曜日

151231(5)

Ruby


Numbers that are not the sum of distinct triangular numbers

数学史上最も有名な「Eureka」は
ガウスによる
"ΕΥΡΗΚΑ! num = Δ + Δ + Δ"
だと思う。
「全ての自然数は高々三個の三角数の和に表される」
という三角数定理を発見した時に日記に書かれたものである。

残念ながら、異なる三角数の和という条件に変えると
表せない自然数がある。
オンライン整数列大辞典の
A053614(http://oeis.org/A053614/list)
と比較し、答え合わせしてみる。

def A053614()
  # 37以上の自然数は異なる三角数の和で表されることが証明できているものとする
  ary = [1, 3, 6, 10, 15, 21, 28, 36]
  a_ary = []
  (1..ary.size).each{|i|
    ary.combination(i){|c|
      a_ary << c.inject(:+)
    }
  }
  (1..36).to_a - a_ary.uniq
end
ary = A053614()

# OEIS A053614のデータ
ary0 =
[2,5,8,12,23,33]
# 一致の確認
p ary == ary0

0 件のコメント:

コメントを投稿

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