Partes imaginárias de zeros de Riemann não triviais

9

Introdução

De acordo com a hipótese de Riemann , todos os zeros da função zie de Riemann são números inteiros negativos (chamados zeros triviais ) ou números complexos da forma 1/2 ± i*tpara algum tvalor real (chamados zeros não triviais ). Para esse desafio, consideraremos apenas os zeros não triviais cuja parte imaginária é positiva e assumiremos que a hipótese de Riemann é verdadeira. Esses zeros não triviais podem ser ordenados pela magnitude de suas partes imaginárias. Os primeiros são aproximadamente 0.5 + 14.1347251i, 0.5 + 21.0220396i, 0.5 + 25.0108576i, 0.5 + 30.4248761i, 0.5 + 32.9350616i.

O desafio

Dado um número inteiro N, imprima a parte imaginária do Nzero não trivial da função zie de Riemann, arredondada para o número inteiro mais próximo (metade arredondada para cima, então 13.5arredondaria para14 ).

Regras

  • A entrada e a saída estarão dentro do intervalo representável de números inteiros para o seu idioma.
  • Como afirmado anteriormente, para os propósitos deste desafio, a hipótese de Riemann é assumida como verdadeira.
  • Você pode escolher se a entrada é indexada a zero ou indexada a um.

Casos de teste

Os seguintes casos de teste são de um índice.

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

Entrada OEIS

Esta é a sequência OEIS A002410 .

Mego
fonte

Respostas:

5

Mathematica, 23 bytes

⌊Im@ZetaZero@#+.5⌋&

Infelizmente, Roundarredonda .5para o número par mais próximo, por isso precisamos implementar o arredondamento adicionando .5e pavimentando.

Martin Ender
fonte
1

PARI / GP , 25 bytes

Não há muito apoio no GP para a teoria dos números analíticos (é principalmente algébrica), mas apenas o suficiente para esse desafio.

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

Sábio, 34 bytes

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

Experimente online

Esta solução é uma forma de golfe do programa encontrada na página OEIS.

lcalc.zerosé uma função (felizmente escrita da maneira mais curta, e não zeroespara um byte extra), que retorna as partes imaginárias dos primeiros nzie zeros não triviais de Riemann. Tomar o -1st index retorna o nth zero (indexado a 1) e o roundarredonda para o número inteiro mais próximo. No Python 3, roundusa o arredondamento do banqueiro (da metade para o mais próximo do par), mas felizmente Sage roda no Python 2, onde roundusa o arredondamento pela metade.

Mego
fonte