PHP, como curiosidad tiene definida la función pi()
, que devuelve una aproximación a esta constante (3.1415926535898),
además dispone de una variable constante llamada M_PI
que nos devuelve exactamente el mismo valor, limitado a 14 decimales. Pero si somos una persona que nos gusta complicarnos la vida, o simplemente presentarnos al proximo concurso de recordadores de decimales de PI, esta es nuestra función,… Alvy, esto va por ti 😀
function bcpi($precision=30, $accuracy=21){
bcscale($precision);
$n = 1;
$bcatan1 = 0;
$bcatan2 = 0;
while($n < $accuracy){
//atan functions
$bcatan1 = bcadd($bcatan1, bcmul(bcdiv(pow(-1, $n+1), $n * 2 - 1), bcpow(0.2, $n * 2 -1)));
$bcatan2 = bcadd($bcatan2, bcmul(bcdiv(pow(-1, $n+1), $n * 2 - 1), bcpow(bcdiv(1,239), $n * 2 -1)));
++$n;
}
return bcmul(4,bcsub(bcmul(4, $bcatan1),$bcatan2));
}
Esta formula, no es la más optima, pero si la más fácil. Usa la formula de Machin’s y Series de Taylor.
1 comentarios, 2 referencias
+
#