Уявні частини нетривіальних нулів Рімана


9

Вступ

Згідно з гіпотезою Рімана , всі нулі zeta функції Рімана є або негативними, навіть цілими числами (звані тривіальними нулями ), або складними числами форми 1/2 ± i*tдля деякого реального tзначення (звані нетривіальними нулями ). Для цього виклику ми розглянемо лише нетривіальні нулі, уявна частина яких позитивна, і ми будемо вважати, що гіпотеза Рімана є правдивою. Ці нетривіальні нулі можна впорядкувати за величиною своїх уявних частин. Перші кілька приблизно 0.5 + 14.1347251i, 0.5 + 21.0220396i, 0.5 + 25.0108576i, 0.5 + 30.4248761i, 0.5 + 32.9350616i.

Змагання

З огляду на ціле число N, виведіть уявну частину цього Nнетривіального нуля zeta функції Рімана, округлену до найближчого цілого числа (округлене напівгору, так 13.5би округло і до 14).

Правила

  • Введення та вихід будуть знаходитись у межах репрезентативного діапазону цілих чисел для вашої мови.
  • Як було сказано раніше, для цілей цього виклику гіпотеза Рімана вважається істинною.
  • Ви можете вибрати, чи буде вхід нульовим чи одноіндексованим.

Випробування

Наступні тестові випадки є одноіндексованими.

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

Математика, 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.zerosце функція (яка, на щастя, написана коротшим способом, а не zeroesзайвим байтом), що повертає уявні частини перших nнетривіальних нульових нулів Рімана. Прийняття -1st-індексу повертає nth нуль (1-індексується) і roundокругляє його до найближчого цілого числа. У Python 3 roundвикористовується заокруглення банкіра (наполовину до найближчого парного), але, на щастя, Sage працює на Python 2, де roundвикористовує заокруглення на половину.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.