Поскольку я являюсь держателем мирового рекорда по большинству цифр числа пи, я добавлю два моих цента :
Если вы на самом деле не устанавливаете новый мировой рекорд, обычная практика - просто проверять вычисленные цифры по известным значениям. Это достаточно просто.
На самом деле, у меня есть веб-страница, на которой перечислены фрагменты цифр с целью проверки вычислений против них: http://www.numberworld.org/digits/Pi/
Но когда вы попадаете на территорию с мировым рекордом, не с чем сравнивать.
Исторически стандартным подходом для проверки правильности вычисленных цифр является пересчет цифр с использованием второго алгоритма. Так что, если любое из вычислений пойдет не так, цифры в конце не будут совпадать.
Это обычно вдвое больше необходимого времени (поскольку второй алгоритм обычно медленнее). Но это единственный способ проверить вычисленные цифры после того, как вы попали на неизведанную территорию с ранее не вычисленными цифрами и новым мировым рекордом.
В те дни, когда суперкомпьютеры устанавливали рекорды, обычно использовались два разных алгоритма AGM :
Это оба O(N log(N)^2)
алгоритма, которые довольно легко реализовать.
Однако в настоящее время все немного по-другому. В последних трех мировых рекордах вместо двух вычислений мы выполнили только одно вычисление, используя самую быструю известную формулу (формула Чудновского ):
Этот алгоритм намного сложнее реализовать, но он намного быстрее, чем алгоритмы AGM.
Затем мы проверяем двоичные цифры, используя формулы BBP для извлечения цифр .
Эта формула позволяет вам вычислять произвольные двоичные цифры, не вычисляя перед этим все цифры. Таким образом, он используется для проверки последних нескольких вычисленных двоичных цифр. Поэтому это намного быстрее, чем полный расчет.
Преимущество этого заключается в следующем:
- Требуется только одно дорогое вычисление.
Недостатком является:
- Реализация Бейли-Borwein-Plouffe (ВВР) формулы требуется.
- Дополнительный шаг необходим для проверки преобразования радиуса из двоичного в десятичное.
Я замутил некоторые детали того, почему проверка последних нескольких цифр означает, что все цифры верны. Но это легко увидеть, поскольку любая ошибка вычислений будет распространяться до последних цифр.
Теперь этот последний шаг (проверка конверсии) на самом деле довольно важен. Один из предыдущих мировых рекордсменов фактически нас об этом звал, потому что изначально я не дал достаточного описания того, как это работает.
Итак, я вытащил этот фрагмент из своего блога:
N = # of decimal digits desired
p = 64-bit prime number
Вычислить A, используя арифметику по основанию 10, а B - двоичную арифметику.
Если A = B
, то с «чрезвычайно высокой вероятностью», преобразование является правильным.
Для дальнейшего чтения, см. Мой пост в блоге Pi - 5 триллионов цифр .