Partes imaginarias de ceros de Riemann no triviales

9

Introducción

Según la hipótesis de Riemann , todos los ceros de la función zeta de Riemann son enteros pares negativos (llamados ceros triviales ) o números complejos de la forma 1/2 ± i*tpara algún tvalor real (llamados ceros no triviales ). Para este desafío, consideraremos solo los ceros no triviales cuya parte imaginaria es positiva, y asumiremos que la hipótesis de Riemann es cierta. Estos ceros no triviales se pueden ordenar por la magnitud de sus partes imaginarias. Los primeros son aproximadamente 0.5 + 14.1347251i, 0.5 + 21.0220396i, 0.5 + 25.0108576i, 0.5 + 30.4248761i, 0.5 + 32.9350616i.

El reto

Dado un número entero N, genera la parte imaginaria del Nth cero no trivial de la función zeta de Riemann, redondeado al entero más cercano (redondeado a la mitad, así 13.5que redondearía a 14).

Reglas

  • La entrada y la salida estarán dentro del rango representable de enteros para su idioma.
  • Como se indicó anteriormente, a los fines de este desafío, se supone que la hipótesis de Riemann es cierta.
  • Puede elegir si la entrada está indexada a cero o un índice.

Casos de prueba

Los siguientes casos de prueba tienen un í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 es la secuencia OEIS A002410 .

Mego
fuente

Respuestas:

5

Mathematica, 23 bytes

⌊Im@ZetaZero@#+.5⌋&

Desafortunadamente, se Roundredondea .5al número par más cercano, por lo que tenemos que implementar el redondeo agregando .5y piso.

Martin Ender
fuente
1

PARI / GP , 25 bytes

No hay mucho apoyo en GP para la teoría analítica de números (es principalmente algebraica), pero solo lo suficiente para este desafío.

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

Sabio, 34 bytes

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

Pruébalo en línea

Esta solución es una forma de golf del programa que se encuentra en la página OEIS.

lcalc.zeroses una función (que afortunadamente se escribe de forma más corta, en lugar de zeroesun byte extra) que devuelve las partes imaginarias de los primeros nceros no triviales de Riemann zeta. Tomar el -1índice st devuelve el nth cero (1 indexado) y lo roundredondea al entero más cercano. En Python 3, roundusa el redondeo de los banqueros (medio a par más cercano), pero afortunadamente Sage se ejecuta en Python 2, donde roundusa el redondeo a la mitad.

Mego
fuente