10204Views9Replies

Author Options:

Calculating Pi using simple JavaScript Answered

One day I was bored and wanted to calculate Pi for myself. After finding out the Leibniz formula for Pi. When it is solved for Pi one gets:
Pi=4/1-4/3+4/5-4/7...
And so on since it's an infinite series. Since one can see a pattern that can easily be defined I concluded that a simple program using a loop could be made. I decided on using JavaScript for its ease of use and use a for loop. The program I made at first was mainly:

var Pi=0;
var n=1;
for (i=0;i<=1000;i++)
{
Pi=Pi+(4/n)
n=n+2
Pi=Pi-(4/n)
n=n+2
}

Where the variable "Pi" is the value of Pi, "i" is the number of times the loop is repeated, and "n" is just a variable to help in the formula. This I however found could further simplified to:

var Pi=0;
var n=1;
for (i=0;i<=1000;i++)
{
Pi=Pi+(4/n)-(4/(n+2))
n=n+4
}

Of course the more times the loop is repeated, the more accurate your value of Pi gets, and while 1000 may seem like a large number, the value of Pi which it calculated is wrong after the 3rd decimal point. I've had it repeat over 100,000 times and it gets more accurate, however, remember that making the number of repeats can slow down and even crash your browser (I speak from experience). If you want some ready made scripting, then here's some scripting I've made which lets you easily control the amount of loop repeats. It is based as an HTML document:

<html>
<body>
<input type="button" onclick="Calculate()" value="Calculate Pi" />
<script type="text/javascript">
//Made by Masterdude
var c=0;
function Calculate()
{
var c=prompt("Enter number of cycles:","0");
if (c>0)
{
var Pi=0;
var n=1;
for (i=0;i<=c;i++)
{
Pi=Pi+(4/n)-(4/(n+2))
n=n+4
}
alert(Pi);
}
else
{
alert("Canceled or Error in input: Input must be positive.");
}
}
</script>
</body>
</html>

Discussions

0
None
katz_t

4 years ago

Further simplified to:
(function(Pi,n){
Pi+=(4/n)-(4/(n+2));
n+=4;
arguments.callee(Pi,n)
})(0,1)

httptomas@gmail.com

Interesting... I'll have to try this sometime.

.  Neat "trick". There's an extra set of braces in the code (after var c=prompt...), but that won't hurt anything.

Ha, I just read this comment and the one below and...combed the code for the extra braces. xD

I know. I didn't make it to make it for serious calculation of Pi but just as a simple project so it doesn't make much of a difference.

I didn't know whether you were aware of the things that people have done to address accuracy with fewer terms - I found it interesting myself.

L