--- Sven Bentlage <[EMAIL PROTECTED]> wrote: > Hi everyone! > > I am trying to write a program calculating pi. > The formula I would like to use is > pi = 4x( (1/1) - (1/3) + (1/5) - (1/7) + (1/9) - (1/11) .... ) > or > $pi = 4x ( (1/$y) - ....)
Hi Sven, The Leibniz series is very slow, but here's one implementation: #!/usr/bin/perl -w #Compute pi. Based on Leibniz's algorithm # pi = 4 - 4/3 + 4/5 - 4/7 + 4/9 - 4/11... use strict; my $pi = 4; my $next_digits = get_leibniz(); for ( 1 .. 100000 ) { my ( $subtract, $add ) = $next_digits->(); $pi = $pi - $subtract + $add; } print $pi; sub get_leibniz { my $index = 1; my $sub = sub { $index += 2; my $first = 4/$index; $index += 2; my $second = 4/$index; return ($first, $second); }; return $sub; } If you want to see some "fun" implmentations, check out this thread on Perlmonks: http://www.perlmonks.org/index.pl?node_id=159377. One of my favorites: sub _{$---&&4/$----&_}print- _$-=1e5 Cheers, Ovid ===== "Ovid" on http://www.perlmonks.org/ Someone asked me how to count to 10 in Perl: push@A,$_ for reverse q.e...q.n.;for(@A){$_=unpack(q|c|,$_);@a=split//; shift@a;shift@a if $a[$[]eq$[;$_=join q||,@a};print $_,$/for reverse @A __________________________________________________ Do you Yahoo!? HotJobs - Search new jobs daily now http://hotjobs.yahoo.com/ -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]