Parti immaginarie di zeri di Riemann non triviali


9

introduzione

Secondo l' ipotesi di Riemann , tutti gli zeri della funzione zeta di Riemann sono numeri interi pari o negativi (chiamati zero banali ) o numeri complessi della forma 1/2 ± i*tper un tvalore reale (chiamati zero non banali ). Per questa sfida, prenderemo in considerazione solo gli zeri non banali la cui parte immaginaria è positiva e supporremo che l'ipotesi di Riemann sia vera. Questi zeri non banali possono essere ordinati in base alla grandezza delle loro parti immaginarie. I primi sono circa 0.5 + 14.1347251i, 0.5 + 21.0220396i, 0.5 + 25.0108576i, 0.5 + 30.4248761i, 0.5 + 32.9350616i.

La sfida

Dato un numero intero N, genera la parte immaginaria dello Nzero non banale della funzione zeta di Riemann, arrotondata al numero intero più vicino (arrotondata per metà, quindi 13.5arrotondata a 14).

Regole

  • L'input e l'output saranno all'interno dell'intervallo rappresentabile di numeri interi per la tua lingua.
  • Come precedentemente affermato, ai fini di questa sfida, si ipotizza che l'ipotesi di Riemann sia vera.
  • È possibile scegliere se l'input è a zero o uno-index.

Casi test

I seguenti casi di test sono indicizzati uno.

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

Voce OEIS

Questa è la sequenza OEIS A002410 .

Risposte:


5

Mathematica, 23 byte

⌊Im@ZetaZero@#+.5⌋&

Sfortunatamente, Roundarrotonda .5al numero pari più vicino, quindi dobbiamo implementare l'arrotondamento aggiungendo .5e pavimentando.


1

PARI / GP , 25 byte

Non c'è molto supporto in GP per la teoria dei numeri analitici (è per lo più algebrica), ma quanto basta per questa sfida.

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

1

Sage, 34 byte

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

Provalo online

Questa soluzione è una forma golfizzata del programma che si trova nella pagina OEIS.

lcalc.zerosè una funzione (che per fortuna viene scritta nel modo più breve, piuttosto che zeroesper un byte in più) che restituisce le parti immaginarie dei primi nzeri di Ziem di Riemann non banali. Prendere l' -1indice st restituisce il nth zero (1-indicizzato) e lo roundarrotonda al numero intero più vicino. In Python 3, roundusa l'arrotondamento del banchiere (da metà a più vicino-pari), ma per fortuna Sage gira su Python 2, dove roundusa l'arrotondamento per metà.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.