алгоритм Чудновского
Алгоритм Чудновского собой быстрый метод вычисления цифр числа π , основанный на Рамануджана π представляет формулах . Издано братьями Чудновскими в 1988 году. [1] его использовали для вычисления числа π с точностью до миллиарда десятичных знаков. [2]
Он использовался при расчете мирового рекорда 2,7 триллионов цифр числа π в декабре 2009 года. [3] 10 триллионов цифр в октябре 2011 года, [4] [5] 22,4 триллиона цифр в ноябре 2016 года, [6] 31,4 триллиона цифр в сентябре 2018 г. – январе 2019 г., [7] 50 триллионов цифр 29 января 2020 года, [8] 62,8 триллиона цифр на 14 августа 2021 года, [9] 100 триллионов цифр 21 марта 2022 года, [10] 105 триллионов цифр 14 марта 2024 года, [11] и 202 триллиона цифр 28 июня 2024 года. [12]
Алгоритм
[ редактировать ]Алгоритм основан на отрицательном числе Хегнера. , j -функция и на следующих быстро сходящихся обобщенных гипергеометрических рядах : [13] Подробное доказательство этой формулы можно найти здесь: [14]
Это тождество похоже на некоторые формулы Рамануджана , включающие π , [13] и является примером серии Рамануджана-Сато .
Временная сложность алгоритма составляет . [15]
Оптимизации
[ редактировать ]Техника оптимизации, используемая для вычислений мировых рекордов, называется бинарным расщеплением . [16]
Бинарное расщепление
[ редактировать ]Фактор можно вынести из суммы и упростить до
Позволять и подставим это в сумму.
можно упростить до , так
из первоначального определения , так
Это определение не определено для , поэтому вычислите первый член суммы и используйте новое определение
Позволять и , так
Позволять и
никогда не может быть вычислено, поэтому вместо этого вычисляйте и как подходы , аппроксимация улучшится.
Из первоначального определения ,
Рекурсивное вычисление функций
[ редактировать ]Рассмотрим значение такой, что
Базовый вариант рекурсии
[ редактировать ]Учитывать
Код Python
[ редактировать ]import decimal
def binary_split(a, b):
if b == a + 1:
Pab = -(6*a - 5)*(2*a - 1)*(6*a - 1)
Qab = 10939058860032000 * a**3
Rab = Pab * (545140134*a + 13591409)
else:
m = (a + b) // 2
Pam, Qam, Ram = binary_split(a, m)
Pmb, Qmb, Rmb = binary_split(m, b)
Pab = Pam * Pmb
Qab = Qam * Qmb
Rab = Qmb * Ram + Pam * Rmb
return Pab, Qab, Rab
def chudnovsky(n):
"""Chudnovsky algorithm."""
P1n, Q1n, R1n = binary_split(1, n)
return (426880 * decimal.Decimal(10005).sqrt() * Q1n) / (13591409*Q1n + R1n)
print(f"1 = {chudnovsky(2)}") # 3.141592653589793238462643384
decimal.getcontext().prec = 100 # number of digits of decimal precision
for n in range(2,10):
print(f"{n} = {chudnovsky(n)}") # 3.14159265358979323846264338...
Примечания
[ редактировать ]См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Чудновский, Дэвид; Чудновский, Грегори (1988), Приближение и комплексное умножение по Рамануджану , Возвращение к Рамануджану: материалы столетней конференции
- ^ Варси, Карл; Дэнджерфилд, Ян; Фарндон, Джон; Гриффитс, Джонни; Джексон, Том; Патель, Мукул; Поуп, Сью; Паркер, Мэтт (2019). Книга по математике: большие идеи просто объяснены . Нью-Йорк: Дорлинг Киндерсли Лимитед . п. 65. ИСБН 978-1-4654-8024-8 .
- ^ Баруа, Наяндип Дека; Берндт, Брюс Дж.; Чан, Хэн Хуат (1 августа 2009 г.). «Серия Рамануджана для 1/π: Обзор» . Американский математический ежемесячник . 116 (7): 567–587. дои : 10.4169/193009709X458555 .
- ^ Да, Александр; Кондо, Сигэру (2011), 10 триллионов цифр числа Пи: пример суммирования гипергеометрических рядов с высокой точностью в многоядерных системах , технический отчет, факультет компьютерных наук, Университет Иллинойса, hdl : 2142/28348
- ^ Арон, Джейкоб (14 марта 2012 г.), «Конфликт констант в день числа Пи» , New Scientist
- ^ «22,4 триллиона цифр числа Пи» . www.numberworld.org .
- ^ «Google Cloud побил рекорд Pi» . www.numberworld.org/ .
- ^ «Пи-запись возвращается на персональный компьютер» . www.numberworld.org/ .
- ^ «Pi Challenge - попытка установления мирового рекорда FH Graubünden - FH Graubünden» . www.fhgr.ch. Проверено 17 августа 2021 г.
- ^ «Вычисление 100 триллионов цифр числа Пи в Google Cloud» . Cloud.google.com . Проверено 10 июня 2022 г.
- ^ Да, Александр Дж. (14 марта 2024 г.). «Хромая к новому рекорду числа Пи в 105 триллионов цифр» . NumberWorld.org . Проверено 16 марта 2024 г.
- ^ Ранус, Джордан (28 июня 2024 г.). «Лаборатория StorageReview побила мировой рекорд по вычислениям числа Пи, набрав более 202 триллионов цифр» . StorageReview.com . Проверено 20 июля 2024 г.
- ^ Перейти обратно: а б Баруа, Наяндип Дека; Берндт, Брюс К.; Чан, Хенг Хуат (2009), «Ряд Рамануджана для 1/ π : обзор», American Mathematical Monthly 116 ( 7): 567–587, doi : 10.4169/193009709X458555 , JSTOR 40391165 , MR ,
- ^ Милла, Лоренц (2018), Подробное доказательство формулы Чудновского средствами базового комплексного анализа , arXiv : 1809.00533
- ^ «y-cruncher — Формулы» . www.numberworld.org . Проверено 25 февраля 2018 г.
- ^ Рэйтон, Джошуа (сентябрь 2023 г.), Как число π вычисляется до триллионов цифр? , YouTube