Вычислить N-ую десятичную цифру числа пи

Что мне нужно:

Функция для вычисления N-й десятичной цифры числа Пи. Пример:

>>> pi_digit(1)
1
>>> pi_digit(2)
4
>>> pi_digit(3)
1
>>> pi_digit(4)
5

Что я пробовал:

Во время поиска нашел этот код. На самом деле он делает то, что мне нужно, кроме одной вещи - он вычисляет все N цифр, а мне нужно только последнее. Возможно ли это сделать эффективным способом? (если бы я просто нарезал строку для последнего символа, это было бы не так быстро). Заранее спасибо.

Зачем мне это нужно:

Я собираюсь поместить этот скрипт, который будет добавлять цифры в текстовый файл, на мой сервер и оставить его на 20-30 дней, и проверить вывод.

1 ответ

Решение

Увидеть:

Неограниченные алгоритмы Spigot для цифр числа Пи

Джереми Гиббонс

Обсуждаемая программа написана на ленивом функциональном языке программирования Haskell [5]. В качестве второстепенного пункта этой статьи мы надеемся убедить читателя, что такие языки являются отличными средствами выражения математических вычислений, безусловно, по сравнению с другими языками программирования общего назначения, такими как Java, C и Pascal, и, возможно, даже по сравнению с системы компьютерной алгебры, такие как Mathematica.

https://www.cs.ox.ac.uk/jeremy.gibbons/publications/spigot.pdf

это может быть реализовано с помощью pidigits

https://github.com/transmogrifier/pidigits

pidigits доступен через Python Package Index (PyPI) с помощью pip.

>>> pip install --upgrade pidigits
Другие вопросы по тегам