2015年12月12日土曜日

151212

Ruby


Chebyshev's bias(1)

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

require 'prime'

def A199547(n)
  ary = []
  cnt1, cnt2, cnt3 = 0, 0, 0
  # cnt1 > cnt3 となることは滅多にないのでたくさんの素数を用意
  Prime.each(10 ** 6).each{|i|
    if i > 2
      i % 4 == 1? cnt1 += 1 : cnt3 += 1
    else
      cnt2 += 1
    end
    if cnt1 > cnt3
      ary << i
      break if ary.size == n
    end
  }
  ary
end
ary = A199547(33)

# OEIS A199547のデータ
ary0 =
[26861,616841,616849,616877,616897,616909,616933,
 616943,616951,616961,616991,616997,616999,617011,
 617269,617273,617293,617311,617327,617333,617339,
 617341,617359,617369,617401,617429,617453,617521,
 617537,617689,617693,617699,617717]
# 一致の確認
p ary == ary0

0 件のコメント:

コメントを投稿

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