Самый быстрый инструмент для вычисления числа Пи (3,14…) по заданной цифре в Linux.

Я хочу вычислить числа Пи от 13 трлн до 13,1 трлн.

Какой самый быстрый инструмент для этого?

Требования:

  • Работает в Linux
  • Открытый исходный код
  • НЕ вычисляет первые 13 триллионов (вычисляет только по заданному смещению)
  • Выходной текстовый файл(ы)

Ответы (1)

Вы можете вычислить энную двоичную цифру числа пи, используя формулу Плуффа :

введите описание изображения здесь

Алгоритм — это самый быстрый способ вычислить n-ю цифру (или несколько цифр в окрестностях n-й); из-за этого при использовании нескольких машин это самый быстрый способ вычислить все цифры от 1 до n. Кроме того, на одной машине. Если размер памяти всех цифр от 1 до n вызывает перегрузку машины, это самый быстрый способ вычислить все цифры от 1 до n.

В Питоне :

>>> from decimal import Decimal as d, getcontext
>>> def bbp(n):
...    return sum( 1/d(16**k)                                      \
...                * (4/d(8*k+1)-2/d(8*k+4)-1/d(8*k+5)-1/d(8*k+6)) \
...                for k in xrange(n))
...
>>> print bbp(50)
3.141592653589793238462643381
>>>
>>> getcontext().prec = 70
>>> print bbp(50)
3.141592653589793238462643383279502884197169399375105820974944592246655

В результате создается впечатление, что вы ищете самую быструю реализацию формулы Плуффа. Я не видел никаких тестов, и это зависит от вашего оборудования (особенно GPU ).

Спасибо! Не могли бы вы изменить код Python для вычисления цифр от 13 триллионов до 13 триллионов + 10? На данный момент bbp принимает только один аргумент, что означает отсутствие смещения.
@NicolasRaoul Формула, как указано, вычисляет число Пи, а не энную цифру числа Пи. Кроме того, из Википедии я прочитал, что он вычисляет двоичную цифру, которая не является базовой 10-й цифрой. Сколько двоичных цифр нам нужно, чтобы вычислить цифру? А как узнать, какие двоичные цифры нужны?
Как и в 0x0100: это только 1 двоичная цифра, но она влияет на 3 десятичные цифры: 2, 5 и 6.