[PHP] PI berechnen

mobin

Stammgast
Hallo ich hab versucht mit PHP ein Programm zu schreiben um PI zu berechnen. Von der Logik her müsste es passen (habs mit C++ getestet). Aber mit PHP hängt es sich auf, auch wenn ich nur eine Berechnung machen lasse.

Hier der Code:

Code:
<?php

$berech = 5;
$nenner = 1;
$pi = 1;

 

for ( $i=0; i<$berech; $i++)
{
$nenner=$nenner+2;
$pi= $pi- 1/$nenner;

$nenner=$nenner+2;
$pi= $pi+ 1/$nenner;
} 

 
 
echo 4*$pi;  
?>



Hier noch der Code in C++:
Code:
#include <iostream.h>
#include <stdlib.h>
using namespace std;

int main()
{
int berech;
double nenner = 1;
double pi = 1;

cout<<"Hallo! Wieviele 1000 Berechnungen sollen durchgefuehrt werden?"<<endl;
cin>>berech;


for ( int x=0; x<berech*500; ++x)
{
nenner=nenner+2;
pi= pi-(1/nenner);

nenner=nenner+2;
pi= pi+(1/nenner);
}

 
 
cout<<4*pi<<endl;
      system("PAUSE");
      return 0;
}
 
Zuletzt bearbeitet von einem Moderator:

romansvillage

Stammgast
Ich hab mir mal dein C++ Script und dein PHP Script angeschaut.
Im PHP Script fehlte noch das $bereich * 500 welches du in C++ drin hattest.
Dann war in der for-Schleife bei einem $i kein $ dran.
Ansonsten funktioniert alles.

Code:
<?php

$berech = 5;
$nenner = 1;
$pi = 1;

for( $i=0; $i < ($berech * 500); $i++ )
{
    $nenner = $nenner + 2;
    $pi= $pi - 1 / $nenner;

    $nenner = $nenner + 2;
    $pi = $pi + 1 / $nenner;
}

echo 4 * $pi;
?>
Ausgabe: 3.1417926135958
Benötigte Zeit: ca. 5 Millisekunden

Edit:
Etwas genauer kriegst du Pi damit hin:
Code:
<?php

$pi = 2 * sqrt(3);
$a = 3;

while($pi != $a)
{
    $pi = 2 * $pi * $a / ($pi + $a);
    $a = sqrt($pi * $a);
}

echo $pi;
?>
Ausgabe: 3.1415926535898
Benötigte Zeit ca. 10 Millisekunden
 
Zuletzt bearbeitet:

mobin

Stammgast
Hoi,

Danke es lag tätsächlich nur an dem $, das "*500" braucht man nicht unbedingt.

Und diese Berechnungsart ist wirklich nicht gut, ich hab gerade
9 Milliarden Berechnungen machen lassen mit C++, und gerade mal 9 Stellen stimmen.
 

Stromer92

Stammgast
xD will ja dein script nicht verunglimpfen, aber meines wissens nach gibt es in PHP die funktion pi() ;)
 
Oben