elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Rompecabezas de Bitcoin, Medio millón USD en premios


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web
| | |-+  PHP (Moderador: #!drvy)
| | | |-+  Calcular decimales de Pi en PHP
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Calcular decimales de Pi en PHP  (Leído 2,030 veces)
CICOLO_111234

Desconectado Desconectado

Mensajes: 200

CICOLO_111234


Ver Perfil WWW
Calcular decimales de Pi en PHP
« en: 9 Agosto 2010, 18:41 pm »

Hola:

Aquí os pongo un programa que he creado para calcular los decimales de PI. Utiliza el método de Ramanujan.


Código
  1. <?
  2. ini_set("max_execution_time", "0");
  3. $decimales = '10000';
  4. $n = "0";
  5. $sumatoria = "0";
  6.  
  7. function factorial ($num) {
  8.  
  9. // inicializamos la variable
  10. $factorial = 1;
  11. // calculamos el  factorial
  12. // multiplicando el numero por todos
  13. // los numeros entre el y 1
  14. // Salida: "El factorial de 5 es 120"
  15. for ($x=$num; $x>=1; $x--) {
  16.  $factorial = bcmul($factorial, $x);
  17. }
  18.  
  19. return $factorial;
  20.  
  21. }
  22.  
  23.  
  24.  
  25.  
  26. While ($n < $_GET['n']) {
  27.  
  28. $raiz =  bcsqrt('2', $decimales);
  29. $mult1 = bcmul('2', $raiz, $decimales);
  30. $primera = bcdiv($mult1, '9801', $decimales);
  31. $mult2 = bcmul(factorial(4*$n), bcadd('1103', bcmul('26390', $n, $decimales), $decimales), $decimales);
  32. $mult22 = bcmul(factorial($n), factorial($n), $decimales);
  33. $mult22 = bcmul($mult22, $mult22, $decimales);
  34.  
  35. $exponente = 4*$n;
  36. $numero = 396;
  37.    $numeroo = 1;
  38.    for ($i=0; $i<$exponente; $i++)
  39.    {
  40.        $numeroo = bcmul($numeroo, $numero, $decimales);
  41.    }
  42.  
  43.  
  44. $mult3 = bcmul($mult22, $numeroo, $decimales);
  45. $div = bcdiv($mult2, $mult3, $decimales);
  46. $sumatoria = bcadd($sumatoria, $div, $decimales);
  47.  
  48. #$sumatoria = $sumatoria + ((factorial(4*$n))*(1103+26390*$n))/(potencia (factorial($n), 4)*potencia (396, 4*$n));
  49. $sum2 = bcmul($sumatoria, $primera, $decimales);
  50. $sum3 = bcdiv('1', $sum2, $decimales);
  51. $fp = fopen('pi.txt', "w");
  52. $write = fputs($fp, $sum3);
  53. fclose($fp);
  54.  
  55.  
  56. $n=$n+1;
  57.  
  58. if ($n % 20 == 0)
  59. {
  60.  
  61. sleep (1);
  62. }
  63. }
  64. echo $sum3;
  65.  
  66.  
  67. ?>


Sólo hay que subirlo y entrar en www.tupagina.com/pagina.php?n=XXXX. Cuanto mayor sea XXXX más decimales correctos tendrá. En la línea 3 puedes cambiar la cantidad de decimales que quieres que muestre (pero cuanto mayor sea, más tarda en hacer las operaciones).

Lo hice ayer, lo probé y he conseguido 8.000 decimales correctos de Pi. Ahora mismo lo tengo trabajando para que obtenga más decimales.


En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Decimales en datagrid y exportar a pdf c# « 1 2 »
.NET (C#, VB.NET, ASP)
joalbela 10 8,923 Último mensaje 15 Marzo 2011, 19:59 pm
por [D4N93R]
Decimales en otras bases
Dudas Generales
Negr0 0 1,912 Último mensaje 2 Julio 2011, 08:35 am
por Negr0
[Solucionado]Duda con decimales
Programación Visual Basic
Trane! 4 2,941 Último mensaje 13 Julio 2011, 02:23 am
por Trane!
Aumentar 1 a 1 decimales
PHP
2Fac3R 3 2,404 Último mensaje 21 Febrero 2012, 23:03 pm
por dark_sargon
[C] Calcular 10.000 decimales de pi
Programación C/C++
cypascal 5 7,636 Último mensaje 30 Marzo 2013, 22:39 pm
por cypascal
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines