Fast method for calculating the digits of π
El algoritmo de Chudnovsky es un método rápido para calcular los dígitos de π , basado en las fórmulas de π de Ramanujan . Publicado por los hermanos Chudnovsky en 1988, [1] se utilizó para calcular π hasta mil millones de decimales. [2]
Se utilizó en los cálculos de récord mundial de 2,7 billones de dígitos de π en diciembre de 2009, [3] 10 billones de dígitos en octubre de 2011, [4] [5] 22,4 billones de dígitos en noviembre de 2016, [6] 31,4 billones de dígitos en septiembre de 2018-enero de 2019, [7] 50 billones de dígitos el 29 de enero de 2020, [8] 62,8 billones de dígitos el 14 de agosto de 2021, [9] 100 billones de dígitos el 21 de marzo de 2022, [10] 105 billones de dígitos el 14 de marzo de 2024, [11] y 202 billones de dígitos el 28 de junio de 2024. [12]
Algoritmo
El algoritmo se basa en el número de Heegner negado , la función j y en la siguiente serie hipergeométrica generalizada rápidamente convergente : [13] Una prueba detallada de esta fórmula se puede encontrar aquí: [14]
Esta identidad es similar a algunas de las fórmulas de Ramanujan que involucran π , [13] y es un ejemplo de una serie de Ramanujan-Sato .
La complejidad temporal del algoritmo es . [15]
Optimizaciones
La técnica de optimización utilizada para los cálculos del récord mundial se llama división binaria . [16]
División binaria
Se puede sacar un factor de la suma y simplificarlo a
Sea , y sustituya eso en la suma.
se puede simplificar a , así que
de la definición original de , entonces
Esta definición de no está definida para , así que calcule el primer término de la suma y use la nueva definición de
Sea y , entonces
Dejar y
nunca se puede calcular, por lo tanto, en lugar de calcular y a medida que se aproxima , la aproximación mejorará.
De la definición original de ,
Calcular recursivamente las funciones
Considere un valor tal que
Caso base para la recursión
Considerar
Código Python
#Nota: Para cálculos extremos, se puede usar otro código para ejecutar en una GPU, que es mucho más rápido que esto.importar decimaldefinición binaria_split ( a , b ): si b == a + 1 : Pab = - ( 6 * un - 5 ) * ( 2 * un - 1 ) * ( 6 * un - 1 ) Qab = 10939058860032000 * a ** 3 Rab = Pab * ( 545140134 * a + 13591409 ) demás : m = ( a + b ) // 2 Pam , Qam , Ram = división binaria ( a , m ) Pmb , Qmb , Rmb = división binaria ( m , b ) Pab = Pam * Pmb Qab = Qam * Qmb Rab = Qmb * Ram + Pam * Rmb volver Pab , Qab , Rabdefinición chudnovsky ( n ): """Algoritmo de Chudnovsky.""" P1n , Q1n , R1n = división binaria ( 1 , n ) devuelve ( 426880 * decimal.decimal ( 10005 ) .sqrt ( ) * Q1n ) / ( 13591409 * Q1n + R1n ) imprimir ( f "1 = { chudnovsky ( 2 ) } " ) # 3.141592653589793238462643384decimal . getcontext () . prec = 100 # número de dígitos de precisión decimalpara n en el rango ( 2 , 10 ): print ( f " { n } = { chudnovsky ( n ) } " ) # 3.14159265358979323846264338...
Notas
Véase también
Enlaces externos
- [1] ¿Cómo se calcula π en billones de dígitos?
Referencias
- ^ Chudnovsky, David; Chudnovsky, Gregory (1988), Aproximación y multiplicación compleja según Ramanujan , Ramanujan revisitado: actas de la conferencia del centenario
- ^ Warsi, Karl; Dangerfield, Jan; Farndon, John; Griffiths, Johny; Jackson, Tom; Patel, Mukul; Pope, Sue; Parker, Matt (2019). El libro de matemáticas: grandes ideas explicadas de forma sencilla . Nueva York: Dorling Kindersley Limited . pág. 65. ISBN. 978-1-4654-8024-8.
- ^ Baruah, Nayandeep Deka; Berndt, Bruce C.; Chan, Heng Huat (1 de agosto de 2009). "Serie de Ramanujan para 1/π: una encuesta". Mensual Matemático Estadounidense . 116 (7): 567–587. doi :10.4169/193009709X458555.
- ^ Yee, Alexander; Kondo, Shigeru (2011), 10 billones de dígitos de Pi: un estudio de caso de suma de series hipergeométricas con alta precisión en sistemas multinúcleo , Informe técnico, Departamento de Ciencias de la Computación, Universidad de Illinois, hdl :2142/28348
- ^ Aron, Jacob (14 de marzo de 2012), "Las constantes chocan en el día de Pi", New Scientist
- ^ "22,4 billones de dígitos de Pi". www.numberworld.org .
- ^ "Google Cloud rompe el récord de Pi". www.numberworld.org/ .
- ^ "El récord Pi regresa al ordenador personal". www.numberworld.org/ .
- ^ "Pi-Challenge - Weltrekordversuch der FH Graubünden - FH Graubünden". www.fhgr.ch. Consultado el 17 de agosto de 2021 .
- ^ "Cálculo de 100 billones de dígitos de pi en Google Cloud". cloud.google.com . Consultado el 10 de junio de 2022 .
- ^ Yee, Alexander J. (14 de marzo de 2024). "Avanzando hacia un nuevo récord de Pi de 105 billones de dígitos". NumberWorld.org . Consultado el 16 de marzo de 2024 .
- ^ Ranous, Jordan (28 de junio de 2024). "StorageReview Lab rompe el récord mundial de cálculo de Pi con más de 202 billones de dígitos". StorageReview.com . Consultado el 20 de julio de 2024 .
- ^ ab Baruah, Nayandeep Deka; Berndt, Bruce C.; Chan, Heng Huat (2009), "La serie de Ramanujan para 1/ π : una encuesta", American Mathematical Monthly , 116 (7): 567–587, doi :10.4169/193009709X458555, JSTOR 40391165, MR 2549375
- ^ Milla, Lorenz (2018), Una prueba detallada de la fórmula de Chudnovsky con medios de análisis complejo básico , arXiv : 1809.00533
- ^ "y-cruncher - Fórmulas". www.numberworld.org . Consultado el 25 de febrero de 2018 .
- ^ Brent, Richard P .; Zimmermann, Paul (2010). Aritmética informática moderna . Vol. 18. Cambridge University Press . doi :10.1017/CBO9780511921698. ISBN . 978-0-511-92169-8.