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

 

 


Tema destacado: Arreglado, de nuevo, el registro del warzone (wargame) de EHN


+  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 3,843 veces)
CICOLO_111234

Desconectado Desconectado

Mensajes: 200

CICOLO_111234


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

Hola:

He creado un programa para calcular decimales de Pi en PHP.
Utiliza el método de Ramanujan.
Éste es el código:



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. ?>



Hay que crear un archivo llamado "pi.txt". Luego hay que subirlo a tu página y entrar en www.tupagina.com/pagina.php?n=XXXX. Cuanto mayor sea XXXX más decimales correctos de Pi habrá. En la tercera línea del código podeis cambiar el número de decimales de Pi que querais que se enseñe. Eso sí, cuanto mayor sea ese número más tardará en hacer el cálculo.

Con este programa he logrado calcular 8.000 decimales de Pi, y ahora mismo está trabajando para conseguir más. Ya sé que está lejos del recién batido récord (5 billones de decimales), pero algo es algo  :D


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,510 Último mensaje 15 Marzo 2011, 19:59 pm
por [D4N93R]
Decimales en otras bases
Dudas Generales
Negr0 0 1,743 Último mensaje 2 Julio 2011, 08:35 am
por Negr0
[Solucionado]Duda con decimales
Programación Visual Basic
Trane! 4 2,693 Último mensaje 13 Julio 2011, 02:23 am
por Trane!
Aumentar 1 a 1 decimales
PHP
2Fac3R 3 2,254 Ú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,293 Último mensaje 30 Marzo 2013, 22:39 pm
por cypascal
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines