note
gryng
Running for 10,000,000 twice I got 3.1405 the first run, and 3.1424 the second. (for an average of 3.1415) It's quite likely your rand() isn't perfect. (neither is mine 10,000,000 runs should give me a digit or two more accuracy).
<p> Anyway, here is my favorite approximation for pi, mainly because it only uses the number 2. Even though two is normally a computer friendly number, this algorithm isn't, because it also uses sqrt's. With my perl, 14 iterations is gives the maximum accuracy: 3.14159265480759
<code>
#!/usr/bin/perl -w
use strict;
print "Enter how many iterations:\n";
chomp(my $i = <>);
my $x = $i - 1;
my $y = sqrt(2);
do { $y = sqrt(2 + $y) while (--$x);
$y = sqrt(2 - $y);
} if $x;
my $z = $y * (2 ** $i);
print "Pi is close to: $z\n";
</code>
<p>So, while not the best, but I have some strange affinity to it. :)
<p>Ciao,
<br>Gryn
<p> p.s. Sorry for the cryptic code for a quick decrypt its: <code>(2**n)*sqrt(2-sqrt(2+sqrt(2+sqrt(2+sqrt(2)))))</code> with the number of 2's inside the sqrt equaling n.
58619
58721