fbpx
Wikipedia

Fórmula de Bailey-Borwein-Plouffe

La fórmula de Bailey-Borwein-Plouffe (o fórmula BBP) permite calcular el enésimo dígito de π en base 2 (o 16) sin necesidad de hallar los precedentes, de una manera rápida y utilizando muy poco espacio de memoria en la computadora. Simon Plouffe junto con David Bailey y Peter Borwein hallaron esta fórmula el 19 de septiembre de 1995 usando un programa informático llamado PSLQ que busca relaciones entre números enteros.[1]

La fórmula BBP

 

La demostración de esta fórmula se encuentra más abajo.

Uso de la fórmula para calcular los decimales del número π

A continuación se muestra el cálculo del enésimo dígito hexadecimal de π.

Primero se debe observar que el dígito ubicado en la posición N+1 de π en base 16 es el mismo que el primer dígito hexadecimal de 16Nπ. En efecto, como en la base 10, multiplicar un número en base 16 por 16 equivale a desplazar la coma decimal un lugar hacia la derecha. De esta manera, multiplicando por 16N, la coma se desplaza N lugares hacia la derecha. El problema original se reduce al cálculo del primer dígito de 16Nπ. Usando la fórmula BBP:

 

El cálculo de los primeros dígitos hexadecimales a la derecha de la coma de este número no es sencillo por dos razones: el número es muy grande y la suma es infinita.

Supongamos que  . El cálculo de los primeros dígitos hexadecimales de SN(a) permitirá obtener los de 16Nπ, a través de la relación:

 

Descomponiendo la suma SN(a) en dos:

 

se pueden calcular AN(a) y BN(a) en forma independiente.

Cálculo de BN(a)

 

Aunque se trata de una suma infinita, es muy fácil de calcular, porque sus términos son pequeños y decrecen rápidamente.

  • En efecto, el primer término de la suma es:  . Si se busca el enésimo dígito hexadecimal de π (N = 1 000 000 000 por ejemplo), el primer término es mucho menor que 1.
  • Además, cada término tiene un cero más a la derecha de la coma que el precedente, porque para k ≥ N, bk > 16 bk+1:
 .

Finalmente, la suma BN(a) es de la forma (en el peor caso):

 

 
 
 

Por lo tanto, para obtener BN(a) con una precisión de P cifras detrás de la coma, es suficiente calcular los P primeros términos de la suma, agregándose algunos términos más para evitar errores que aparecen al realizar cálculos con valores aproximados.

Así, se calcula:  

Como esta suma solo posee una pequeña cantidad de términos, el tiempo que insume esta operación es insignificante para una computadora.

Cálculo de AN(a)

 

El problema para el cálculo de AN(a) es que los primeros términos son muy grandes (N cifras de base 16 antes de la coma). Sin embargo, al igual que las primeras cifras detrás de la coma, no importa la parte entera, que también es grande. Por lo tanto, puede "eliminarse" usando aritmética modular.

Toda la dificultad se reduce a hallar la parte fraccionaria de  . Para ello realizamos la división entera de 16N-k por 8k+a:

 

Así  

  es menor que 1, por lo tanto, es la parte fraccional de  .

Y  

Así, se calcula:  .

Utilizando el método de la exponenciación binaria,   se calcula rápidamente (con un tiempo de ejecución de O(log2(N-k)).

Conclusión

Al fin y al cabo, para obtener los primeros dígitos de π base 16 (o 2), se deben calcular los primeros dígitos de:

 

con  .

Complejidad de este método

Para calcular el enésimo dígito de π en base 16 (o el 4n-ésimo dígito en base 2):

Complejidad temporal

  • Bn'(a) se calcula en complejidad lineal (O(1))
  • An'(a) : utilizando el método de la exponenciación binaria, sus términos se calculan en O(log2(n)). Así la suma de n términos, An'(a), se calcula en O(n*log2(n)).

Así Sn'(a) se calcula en O(1)+O(n*log2(n))=O(n*log2(n)). Finalmente, πn se calcula en 4*O(n*log2(n))=O(n*log2(n)).

Por lo tanto el tiempo de cálculo es proporcional a n*log2(n), es decir, casi lineal.

Complejidad espacial

La complejidad en el uso de memoria es constante, ya que solo se realizan sumas sucesivas de pequeños números (con una precisión de unos diez decimales es suficiente).

Fórmulas derivadas

Simon Plouffe

Fórmula original :  

 

 

 

 

 

La última fórmula permite hallar dígitos aislados de   en base 3 o 9.

Viktor Adamchick y Stan Wagon (1997)

 

Fabrice Bellard

 

Los récords

Para poder comparar, hasta el año 2008 se habían obtenido los primeros 1,241 billones de decimales de π (aproximadamente 4,123 billones de bits).

  • 7 de octubre de 1996 (Fabrice Bellard): dígito número 400 mil millones en base 2
  • septiembre de 1997 (Fabrice Bellard) : billonésimo dígito en base 2
  • febrero de 1999 (Colin Percival) : dígito número 40 billones en base 2
  • 2001: dígito número 4000 billones en base 2
  • 2011: dígito número 10 billones en base 10

Cálculo del enésimo decimal

Actualmente, no existe ninguna fórmula eficaz para hallar el enésimo decimal de π en base 10. Simon Plouffe ha desarrollado en diciembre de 1996, a partir de una serie muy antigua que calcula π basado en los coeficientes de binomio de Newton, un método para calcular cifras aisladas base 10, pero debido a su complejidad O(n3*log2(n)) pierde su utilidad en la práctica. Fabrice Bellard ha mejorado el algoritmo para alcanzar un nivel de complejidad en O(n2), pero no es suficiente para competir con los métodos convencionales que calculan todos los decimales.

Anexo: demostración de la fórmula BBP

Se demuestra primero el siguiente resultado general:

 
 
 
 
 
 


por lo tanto:  


Aplicando este resultado a la fórmula BBP:

 
 
 
 

Sustituyendo  :

 
 
 

Descomponiendo en fracciones simples:

 
 
 
 
 
 

Véase también

Referencias

  1. The Quest for Pi el 27 de septiembre de 2011 en Wayback Machine. (en inglés)


  •   Datos: Q803807

fórmula, bailey, borwein, plouffe, fórmula, bailey, borwein, plouffe, fórmula, permite, calcular, enésimo, dígito, base, necesidad, hallar, precedentes, manera, rápida, utilizando, poco, espacio, memoria, computadora, simon, plouffe, junto, david, bailey, pete. La formula de Bailey Borwein Plouffe o formula BBP permite calcular el enesimo digito de p en base 2 o 16 sin necesidad de hallar los precedentes de una manera rapida y utilizando muy poco espacio de memoria en la computadora Simon Plouffe junto con David Bailey y Peter Borwein hallaron esta formula el 19 de septiembre de 1995 usando un programa informatico llamado PSLQ que busca relaciones entre numeros enteros 1 Indice 1 La formula BBP 2 Uso de la formula para calcular los decimales del numero p 2 1 Calculo de BN a 2 2 Calculo de AN a 2 3 Conclusion 3 Complejidad de este metodo 3 1 Complejidad temporal 3 2 Complejidad espacial 4 Formulas derivadas 4 1 Simon Plouffe 4 2 Viktor Adamchick y Stan Wagon 1997 4 3 Fabrice Bellard 5 Los records 6 Calculo del enesimo decimal 7 Anexo demostracion de la formula BBP 8 Vease tambien 9 ReferenciasLa formula BBP Editarp k 0 1 16 k 4 8 k 1 2 8 k 4 1 8 k 5 1 8 k 6 displaystyle pi sum k 0 infty frac 1 16 k left frac 4 8k 1 frac 2 8k 4 frac 1 8k 5 frac 1 8k 6 right La demostracion de esta formula se encuentra mas abajo Uso de la formula para calcular los decimales del numero p EditarA continuacion se muestra el calculo del enesimo digito hexadecimal de p Primero se debe observar que el digito ubicado en la posicion N 1 de p en base 16 es el mismo que el primer digito hexadecimal de 16Np En efecto como en la base 10 multiplicar un numero en base 16 por 16 equivale a desplazar la coma decimal un lugar hacia la derecha De esta manera multiplicando por 16N la coma se desplaza N lugares hacia la derecha El problema original se reduce al calculo del primer digito de 16Np Usando la formula BBP 16 N p k 0 16 N k 4 8 k 1 2 8 k 4 1 8 k 5 1 8 k 6 displaystyle 16 N pi sum k 0 infty 16 N k left frac 4 8k 1 frac 2 8k 4 frac 1 8k 5 frac 1 8k 6 right El calculo de los primeros digitos hexadecimales a la derecha de la coma de este numero no es sencillo por dos razones el numero es muy grande y la suma es infinita Supongamos que S N a k 0 16 N k 8 k a displaystyle S N a sum k 0 infty frac 16 N k 8k a El calculo de los primeros digitos hexadecimales de SN a permitira obtener los de 16Np a traves de la relacion 16 N p 4 S N 1 2 S N 4 S N 5 S N 6 displaystyle 16 N pi 4 S N 1 2S N 4 S N 5 S N 6 Descomponiendo la suma SN a en dos S N a k 0 16 N k 8 k a k 0 N 1 16 N k 8 k a k N 16 N k 8 k a A N a B N a displaystyle S N a sum k 0 infty frac 16 N k 8k a sum k 0 N 1 frac 16 N k 8k a sum k N infty frac 16 N k 8k a A N a B N a se pueden calcular AN a y BN a en forma independiente Calculo de BN a Editar B N a k N 16 N k 8 k a displaystyle B N a sum k N infty frac 16 N k 8k a Aunque se trata de una suma infinita es muy facil de calcular porque sus terminos son pequenos y decrecen rapidamente En efecto el primer termino de la suma es b N 1 8 N a displaystyle b N frac 1 8N a Si se busca el enesimo digito hexadecimal de p N 1 000 000 000 por ejemplo el primer termino es mucho menor que 1 Ademas cada termino tiene un cero mas a la derecha de la coma que el precedente porque para k N bk gt 16 bk 1 b k b k 1 16 N k 16 N k 1 8 k 1 a 8 k a 16 1 8 8 k a 16 displaystyle frac b k b k 1 frac 16 N k 16 N k 1 frac 8 k 1 a 8k a 16 left 1 frac 8 8k a right longrightarrow 16 Finalmente la suma BN a es de la forma en el peor caso B N 0 displaystyle B N 0 0 0 displaystyle 0 0 dd 0 00 displaystyle 0 00 dd 0 000 displaystyle 0 000 dd Por lo tanto para obtener BN a con una precision de P cifras detras de la coma es suficiente calcular los P primeros terminos de la suma agregandose algunos terminos mas para evitar errores que aparecen al realizar calculos con valores aproximados Asi se calcula B N a k N N P 10 16 N k 8 k a displaystyle B N a sum k N N P 10 frac 16 N k 8k a Como esta suma solo posee una pequena cantidad de terminos el tiempo que insume esta operacion es insignificante para una computadora Calculo de AN a Editar A N a k 0 N 1 16 N k 8 k a displaystyle A N a sum k 0 N 1 frac 16 N k 8k a El problema para el calculo de AN a es que los primeros terminos son muy grandes N cifras de base 16 antes de la coma Sin embargo al igual que las primeras cifras detras de la coma no importa la parte entera que tambien es grande Por lo tanto puede eliminarse usando aritmetica modular Toda la dificultad se reduce a hallar la parte fraccionaria de 16 N k 8 k a displaystyle frac 16 N k 8k a Para ello realizamos la division entera de 16N k por 8k a q Z r lt 8 k a 16 N k q 8 k a r displaystyle exists q in mathbb Z exists r lt 8k a 16 N k q 8k a r Asi 16 N k 8 k a q r 8 k a displaystyle frac 16 N k 8k a q frac r 8k a r 8 k a displaystyle frac r 8k a es menor que 1 por lo tanto es la parte fraccional de 16 N k 8 k a displaystyle frac 16 N k 8k a Y r 8 k a 16 N k mod 8 k a 8 k a displaystyle frac r 8k a frac 16 N k pmod 8k a 8k a Asi se calcula A N a k 0 N 1 16 N k mod 8 k a 8 k a displaystyle A N a sum k 0 N 1 frac 16 N k pmod 8k a 8k a Utilizando el metodo de la exponenciacion binaria 16 N k mod 8 k a displaystyle 16 N k pmod 8k a se calcula rapidamente con un tiempo de ejecucion de O log2 N k Conclusion Editar Al fin y al cabo para obtener los primeros digitos de p base 16 o 2 se deben calcular los primeros digitos de p N 4 S N 1 2 S N 4 S N 5 S N 6 displaystyle pi N 4 S N 1 2 S N 4 S N 5 S N 6 con S N a k 0 N 1 16 N k mod 8 k a 8 k a k N N P 10 16 N k 8 k a displaystyle S N a sum k 0 N 1 frac 16 N k pmod 8k a 8k a sum k N N P 10 frac 16 N k 8k a Complejidad de este metodo EditarPara calcular el enesimo digito de p en base 16 o el 4n esimo digito en base 2 Complejidad temporal Editar Bn a se calcula en complejidad lineal O 1 An a utilizando el metodo de la exponenciacion binaria sus terminos se calculan en O log2 n Asi la suma de n terminos An a se calcula en O n log2 n Asi Sn a se calcula en O 1 O n log2 n O n log2 n Finalmente pn se calcula en 4 O n log2 n O n log2 n Por lo tanto el tiempo de calculo es proporcional a n log2 n es decir casi lineal Complejidad espacial Editar La complejidad en el uso de memoria es constante ya que solo se realizan sumas sucesivas de pequenos numeros con una precision de unos diez decimales es suficiente Formulas derivadas EditarSimon Plouffe Editar Formula original p i 0 1 16 i 4 8 i 1 2 8 i 4 1 8 i 5 1 8 i 6 displaystyle pi sum i 0 infty frac 1 16 i left frac 4 8i 1 frac 2 8i 4 frac 1 8i 5 frac 1 8i 6 right r C p i 0 1 16 i 4 8 r 8 i 1 8 r 8 i 2 4 r 8 i 3 2 8 i 8 i 4 1 2 r 8 i 5 1 2 r 8 i 6 r 8 i 7 displaystyle forall r in mathbb C pi sum i 0 infty frac 1 16 i left frac 4 8r 8i 1 frac 8r 8i 2 frac 4r 8i 3 frac 2 8i 8i 4 frac 1 2r 8i 5 frac 1 2r 8i 6 frac r 8i 7 right p 2 i 0 1 i 8 i 4 6 i 1 1 6 i 2 1 6 i 3 displaystyle pi sqrt 2 sum i 0 infty frac 1 i 8 i left frac 4 6i 1 frac 1 6i 2 frac 1 6i 3 right p 2 i 0 1 16 i 16 8 i 1 2 16 8 i 2 2 8 8 i 3 2 16 8 i 4 2 4 8 i 5 2 4 8 i 6 2 2 8 i 7 2 displaystyle pi 2 sum i 0 infty frac 1 16 i left frac 16 8i 1 2 frac 16 8i 2 2 frac 8 8i 3 2 frac 16 8i 4 2 frac 4 8i 5 2 frac 4 8i 6 2 frac 2 8i 7 2 right p 2 9 8 i 0 1 64 i 16 6 i 1 2 24 6 i 2 2 8 6 i 3 2 6 6 i 4 2 1 6 i 5 2 displaystyle pi 2 frac 9 8 sum i 0 infty frac 1 64 i left frac 16 6i 1 2 frac 24 6i 2 2 frac 8 6i 3 2 frac 6 6i 4 2 frac 1 6i 5 2 right p 2 2 27 i 0 1 729 i 243 12 i 1 2 405 12 i 2 2 81 12 i 4 2 27 12 i 5 2 72 12 i 6 2 9 12 i 7 2 9 12 i 8 2 5 12 i 10 2 1 12 i 11 2 displaystyle pi 2 frac 2 27 sum i 0 infty frac 1 729 i left frac 243 12i 1 2 frac 405 12i 2 2 frac 81 12i 4 2 frac 27 12i 5 2 frac 72 12i 6 2 frac 9 12i 7 2 frac 9 12i 8 2 frac 5 12i 10 2 frac 1 12i 11 2 right La ultima formula permite hallar digitos aislados de p 2 displaystyle pi 2 en base 3 o 9 Viktor Adamchick y Stan Wagon 1997 Editar p i 0 1 i 4 i 2 4 i 1 2 4 i 2 1 4 i 3 displaystyle pi sum i 0 infty frac 1 i 4 i left frac 2 4i 1 frac 2 4i 2 frac 1 4i 3 right Fabrice Bellard Editar p 1 64 i 0 1 i 2 10 i 32 4 i 1 1 4 i 3 256 10 i 1 64 10 i 3 4 10 i 5 4 10 i 7 1 10 i 9 displaystyle pi frac 1 64 sum i 0 infty frac 1 i 2 10i left frac 32 4i 1 frac 1 4i 3 frac 256 10i 1 frac 64 10i 3 frac 4 10i 5 frac 4 10i 7 frac 1 10i 9 right Los records EditarPara poder comparar hasta el ano 2008 se habian obtenido los primeros 1 241 billones de decimales de p aproximadamente 4 123 billones de bits 7 de octubre de 1996 Fabrice Bellard digito numero 400 mil millones en base 2 septiembre de 1997 Fabrice Bellard billonesimo digito en base 2 febrero de 1999 Colin Percival digito numero 40 billones en base 2 2001 digito numero 4000 billones en base 2 2011 digito numero 10 billones en base 10Calculo del enesimo decimal EditarActualmente no existe ninguna formula eficaz para hallar el enesimo decimal de p en base 10 Simon Plouffe ha desarrollado en diciembre de 1996 a partir de una serie muy antigua que calcula p basado en los coeficientes de binomio de Newton un metodo para calcular cifras aisladas base 10 pero debido a su complejidad O n3 log2 n pierde su utilidad en la practica Fabrice Bellard ha mejorado el algoritmo para alcanzar un nivel de complejidad en O n2 pero no es suficiente para competir con los metodos convencionales que calculan todos los decimales Anexo demostracion de la formula BBP EditarSe demuestra primero el siguiente resultado general n N k 0 1 16 k 8 k n 2 n k 0 1 2 8 k n 8 k n displaystyle forall n in mathbb N sum k 0 infty frac 1 16 k 8k n sqrt 2 n sum k 0 infty frac left frac 1 sqrt 2 right 8k n 8k n 2 n k 0 x 8 k n 8 k n 0 1 2 displaystyle sqrt 2 n sum k 0 infty left frac x 8k n 8k n right 0 frac 1 sqrt 2 dd dd dd dd dd dd dd dd dd 2 n k 0 0 1 2 x n 8 k 1 d x displaystyle sqrt 2 n sum k 0 infty left int 0 frac 1 sqrt 2 x n 8k 1 dx right dd dd dd dd dd dd dd dd dd 2 n 0 1 2 k 0 x n 8 k 1 d x displaystyle sqrt 2 n int 0 frac 1 sqrt 2 left sum k 0 infty x n 8k 1 right dx dd dd dd dd dd dd dd dd dd 2 n 0 1 2 x n 1 k 0 x 8 k d x displaystyle sqrt 2 n int 0 frac 1 sqrt 2 bigg x n 1 underbrace sum k 0 infty left x 8 right k bigg dx dd dd dd dd dd dd dd dd dd 2 n 0 1 2 x n 1 1 1 x 8 d x displaystyle sqrt 2 n int 0 frac 1 sqrt 2 bigg x n 1 frac 1 1 x 8 bigg dx dd dd dd dd dd dd dd dd dd por lo tanto k 0 1 16 k 8 k n 2 n 0 1 2 x n 1 1 x 8 d x displaystyle sum k 0 infty frac 1 16 k 8k n sqrt 2 n int 0 frac 1 sqrt 2 frac x n 1 1 x 8 dx dd dd Aplicando este resultado a la formula BBP k 0 1 16 k 4 8 k 1 2 8 k 4 1 8 k 5 1 8 k 6 displaystyle sum k 0 infty frac 1 16 k left frac 4 8k 1 frac 2 8k 4 frac 1 8k 5 frac 1 8k 6 right 4 k 0 1 16 k 8 k 1 2 k 0 1 16 k 8 k 4 k 0 1 16 k 8 k 5 k 0 1 16 k 8 k 6 displaystyle 4 sum k 0 infty frac 1 16 k 8k 1 2 sum k 0 infty frac 1 16 k 8k 4 sum k 0 infty frac 1 16 k 8k 5 sum k 0 infty frac 1 16 k 8k 6 4 2 1 0 1 2 x 1 1 1 x 8 d x 2 2 4 0 1 2 x 4 1 1 x 8 d x 2 5 0 1 2 x 5 1 1 x 8 d x 2 6 0 1 2 x 6 1 1 x 8 d x displaystyle 4 left sqrt 2 1 int 0 frac 1 sqrt 2 frac x 1 1 1 x 8 dx right 2 left sqrt 2 4 int 0 frac 1 sqrt 2 frac x 4 1 1 x 8 dx right left sqrt 2 5 int 0 frac 1 sqrt 2 frac x 5 1 1 x 8 dx right left sqrt 2 6 int 0 frac 1 sqrt 2 frac x 6 1 1 x 8 dx right 0 1 2 4 2 8 x 3 4 2 x 4 8 x 5 1 x 8 d x displaystyle int 0 frac 1 sqrt 2 frac 4 sqrt 2 8x 3 4 sqrt 2 x 4 8x 5 1 x 8 dx Sustituyendo y 2 x displaystyle y sqrt 2 x 0 1 4 2 8 2 3 y 3 4 2 2 4 y 4 8 2 5 y 5 1 1 2 8 y 8 d y 2 displaystyle int 0 1 left frac 4 sqrt 2 frac 8 sqrt 2 3 y 3 frac 4 sqrt 2 sqrt 2 4 y 4 frac 8 sqrt 2 5 y 5 1 frac 1 sqrt 2 8 y 8 right frac dy sqrt 2 16 0 1 4 2 y 3 y 4 y 5 16 y 8 d y displaystyle 16 int 0 1 frac 4 2y 3 y 4 y 5 16 y 8 dy 16 0 1 y 1 y 2 2 y 2 y 2 2 d y displaystyle 16 int 0 1 frac y 1 y 2 2y 2 y 2 2 dy Descomponiendo en fracciones simples 0 1 8 4 y y 2 2 y 2 4 y y 2 2 d y displaystyle int 0 1 left frac 8 4y y 2 2y 2 frac 4y y 2 2 right dy 2 0 1 2 y 2 y 2 2 y 2 d y 4 0 1 1 1 y 1 2 d y 2 0 1 2 y y 2 2 d y displaystyle 2 int 0 1 frac 2y 2 y 2 2y 2 dy 4 int 0 1 frac 1 1 y 1 2 dy 2 int 0 1 frac 2y y 2 2 dy 2 l n y 2 2 y 2 0 1 4 a r c t a n y 1 0 1 2 l n 2 y 2 0 1 displaystyle 2 left ln y 2 2y 2 right 0 1 4 left arctan y 1 right 0 1 2 left ln 2 y 2 right 0 1 2 l n 1 2 l n 2 4 a r c t a n 0 4 a r c t a n 1 2 l n 1 2 l n 2 displaystyle 2 ln 1 2 ln 2 4 arctan 0 4 arctan 1 2 ln 1 2 ln 2 4 a r c t a n 1 displaystyle 4 arctan 1 p displaystyle pi Vease tambien EditarNumero pi Formula AlgebraReferencias Editar The Quest for Pi Archivado el 27 de septiembre de 2011 en Wayback Machine en ingles Datos Q803807Obtenido de https es wikipedia org w index php title Formula de Bailey Borwein Plouffe amp oldid 134519116, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos