非単純なリーマンゼロの虚数部


9

前書き

リーマン仮説によれば、リーマンゼータ関数のすべてのゼロは、負の偶数の整数(トリビアルゼロと呼ばれます)または1/2 ± i*tt数値の形式の複素数(非トリビアルゼロと呼ばれます)のいずれかです。この課題では、虚数部が正である非自明なゼロのみを考慮し、リーマン仮説が真であると仮定します。これらの重要なゼロは、それらの虚数部の大きさによって並べ替えることができます。最初のいくつかはおよそ0.5 + 14.1347251i, 0.5 + 21.0220396i, 0.5 + 25.0108576i, 0.5 + 30.4248761i, 0.5 + 32.9350616iです。

チャレンジ

整数与えられN、出力の虚部Nリーマンゼータ関数の番目の非自明なゼロは、最も近い整数に丸め(丸い半アップ、そう13.5に丸めることになります14)。

ルール

  • 入力と出力は、ご使用の言語で表現可能な整数の範囲内になります。
  • 先に述べたように、この挑戦​​の目的のために、リーマン仮説は真実であると仮定されます。
  • 入力がゼロインデックスか1インデックスかを選択できます。

テストケース

次のテストケースは、インデックスが1つあります。

1       14
2       21
3       25
4       30
5       33
6       38
7       41
8       43
9       48
10      50
50      143
100     237

OEISエントリ

これはOEISシーケンスA002410です。

回答:


5

Mathematica、23バイト

⌊Im@ZetaZero@#+.5⌋&

残念ながら、Roundラウンド.5最も近い偶数に、我々は追加することにより、丸め実装する必要がありそう.5とフローリング。


1

PARI / GP、25バイト

GPには、解析的数論(ほとんどが代数的)のサポートはあまりありませんが、この課題には十分です。

n->lfunzeros(1,15*n)[n]\/1

1

セージ、34バイト

lambda n:round(lcalc.zeros(n)[-1])

オンラインでお試しください

このソリューションは、OEISページにあるプログラムのゴルフ形式です。

lcalc.zeroszeroes最初のn非自明なリーマンゼータゼロの虚数部を返す関数(これは、余分なバイトではなく、短い方法でありがたいことにつづりです)です。-1stインデックスを取得すると、n0番目のインデックス(1インデックス)が返さroundれ、最も近い整数に丸められます。Python 3 roundではバンカーの丸め(半分から最も近い偶数)を使用していますが、ありがたいことに、SageはPython 2で実行されroundます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.