Bagian Imajiner dari Riemann Zeroes yang Tidak Sepele

9

pengantar

Menurut Hipotesis Riemann , semua nol fungsi Riemann zeta dapat berupa bilangan bulat genap negatif (disebut trivial zeroes ) atau bilangan kompleks formulir 1/2 ± i*tuntuk beberapa tnilai nyata (disebut nol bukan trivial ). Untuk tantangan ini, kita akan mempertimbangkan hanya nol nol yang bagian imajinernya positif, dan kita akan menganggap Hipotesis Riemann benar. Nol non-sepele ini dapat dipesan dengan besarnya bagian imajiner mereka. Beberapa yang pertama kira-kira 0.5 + 14.1347251i, 0.5 + 21.0220396i, 0.5 + 25.0108576i, 0.5 + 30.4248761i, 0.5 + 32.9350616i.

Tantangan

Diberikan bilangan bulat N, menampilkan bagian imajiner dari Nnol non-sepele fungsi Riemann zeta, dibulatkan ke bilangan bulat terdekat (dibulatkan setengah-atas, jadi 13.5akan dibulatkan ke 14).

Aturan

  • Input dan output akan berada dalam kisaran integer yang representatif untuk bahasa Anda.
  • Seperti yang dinyatakan sebelumnya, untuk keperluan tantangan ini, Hipotesis Riemann dianggap benar.
  • Anda dapat memilih apakah input diindeks nol atau diindeks satu.

Uji Kasus

Kasus uji berikut ini satu-diindeks.

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

Entri OEIS

Ini adalah urutan OEIS A002410 .

Mego
sumber

Jawaban:

5

Mathematica, 23 byte

⌊Im@ZetaZero@#+.5⌋&

Sayangnya, Roundputaran .5ke nomor bahkan terdekat, jadi kami harus menerapkan pembulatan dengan menambahkan .5dan lantai.

Martin Ender
sumber
1

PARI / GP , 25 byte

Tidak ada banyak dukungan di GP untuk teori bilangan analitik (kebanyakan aljabar), tetapi cukup untuk tantangan ini.

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

Sage, 34 byte

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

Cobalah online

Solusi ini adalah bentuk golf dari program yang ditemukan di halaman OEIS.

lcalc.zerosadalah fungsi (yang untungnya dieja dengan cara yang lebih pendek, daripada zeroesbyte tambahan) yang mengembalikan bagian imajiner dari nnol Riemann zeta nol yang tidak sepele. Mengambil -1indeks st mengembalikan nnol th (1-diindeks), dan roundmembulatkannya ke bilangan bulat terdekat. Dalam Python 3, roundmenggunakan pembulatan bankir (setengah-ke-terdekat-genap), tapi untungnya Sage berjalan pada Python 2, di mana roundmenggunakan pembulatan setengah-atas.

Mego
sumber