http://wert.bee.pl/1.php zobacz teraz sa 3 rozne wyniki :/
moj kod
<br>A to zwykłe pi(); <br>
<?
?>
<Br>////////////////////////////////////////////////////////////////////<br>
To jest ten skrypt :
<br><br><br>
<?php
$mianownik = 1;
$znak = 1;
$pi_4 = 0;
$i = 20; // 1000000000 to było za dużo, przynajmniej mój interpreter nie wyrobił w 30 sekund ;]
for($i; $i > 0 ; $i--)
{
$pi_4 += ($znak * 1.0) / $mianownik;
$mianownik += 2;
$znak = -$znak;
}
$pi = 4.0 * $pi_4;
echo round($pi, 10), '<br />'; // zamiast html'owego <br /> może być php'owe "\n" ;) ?>
<?
function dopi($pidigits)
{
$pidigits += 10; //add 10 digits that will be removed later (last few digits tend to be inprecise)
bcscale($pidigits);
$origr = log($pidigits, 10);
$r= $origr;
$i=0;
$or=0;
$ffact = 1;
$sfact = 1;
while(bccomp($or,$r))
{
$i++;
$ffact = bcmul($i, $ffact);
$or=$r;
$b = $ffact;
$b = bcpow($b, 2);
$z = bcpow(2, $i+1);
$b = bcmul($b, $z);
$sfact = bcmul($sfact, bcmul(2*$i-1, 2*$i));
$z = $sfact;
$b = bcdiv($b,$z);
$r = bcadd($r, $b);
}
}
function bcpi($precision){
$limit = ceil(log
($precision)/log
(2
))-1; bcscale($precision+6);
$a = 1;
$b = bcdiv(1,bcsqrt(2));
$t = 1/4;
$p = 1;
while($n < $limit){
$x = bcdiv(bcadd($a,$b),2);
$y = bcsqrt(bcmul($a, $b));
$t = bcsub($t, bcmul($p,bcpow(bcsub($a,$x),2)));
$a = $x;
$b = $y;
$p = bcmul(2,$p);
++$n;
}
return bcdiv(bcpow(bcadd($a, $b),2),bcmul(4,$t),$precision);
}
?>
ziqzaq Jak rozwiaze temat to dostaniesz +