ラマヌジャン予想(5)
ラマヌジャン予想(4)において、
100000 以下の素数 p について小さいものから順に |τ(p)| / p^5.5 を計算し、
それがそれまでの計算値をこえるごとに記録した
結果を確認してみた。
今回は、Pythonで確認してみる。
(実行時間は1時間15分ほどかかる。)
(実行時間は1時間15分ほどかかる。)
# -*- coding: cp932 -*-
import numpy
import math
# m次以下のみにする
def mth_degree_poly(p, m, type):
return numpy.poly1d(numpy.array(list(p)[- m - 1:], dtype = type))
def power(f, n, m, type):
p = numpy.poly1d(numpy.array([1L], dtype = type))
for i in format (n, 'b'):
p *= p
p = mth_degree_poly(p, m, type)
if i == '1':
# fがリストでも答えが出る
p *= f
p = mth_degree_poly(p, m, type)
return p
def A000594(n, type):
ary = [0] * (n + 1)
i = 0
j, k = 2 * i + 1, i * (i + 1) / 2
while k <= n:
ary[k] = -j if i % 2 == 1 else j
i += 1
j, k = 2 * i + 1, i * (i + 1) / 2
return list(reversed((power(list(reversed(ary)), 8, n - 1, type)).c))
def prime_ary(n):
ary = [True for i in xrange(n + 1)]
i = 2
while i * i <= n:
if ary[i]:
j = i + i
while j <= n:
# jはiの倍数
ary[j] = False
j += i
i += 1
p_ary = [i for i in xrange(n + 1) if ary[i] and i >= 2]
return p_ary
# |t(p)| / p^5.5 の最大値
def ramanujan_conjecture(ary):
max = 0
r_max_ary = []
p_ary = prime_ary(len(ary))
for p in p_ary:
t = ary[p - 1]
u = math.fabs(t) / p ** 5.5
if max < u:
r_max_ary.append([p, t, u])
max = u
return r_max_ary
N = 100000
type = numpy.object
ary = A000594(N, type)
print ramanujan_conjecture(ary)
出力結果
[[2, -24L, 0.5303300858899106], [3, 252L, 0.5987336124929452], [5, 4830L, 0.6912
13333204735], [11, 534612L, 1.0008729094970374], [17, -6905934L, 1.1796504994162
533], [47, 2687348496L, 1.7091720053051764], [103, -225755128648L, 1.91881404823
90927], [3371, 49278699535832155572L, 1.9497821915448013], [3967, 12075280611617
1238016L, 1.9514396698133158], [7451, -3875535882287120935548L, 1.95502206589493
24], [7589, 4299215878259436627390L, 1.9605332515011487], [16033, 26422052465366
8368557282L, 1.9696324533790046], [18047, -507583894904594239461504L, 1.97369587
34327261], [32233, -12353847812192420408840518L, 1.977644573320766], [39089, -35
739924948271037246368110L, 1.9808589644591574], [53593, -20312284045572123188421
5158L, 1.9845606903237616], [58189, 320344277397080839676063990L, 1.990636920097
253], [64849, 581810639436172985553940850L, 1.992111303823014], [74471, 12477466
75775398313329647672L, 1.996167133105195]]
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。