Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > comp.databases.postgresql > #883

Re: calculating pi [Re: php and big data and predictive modelling...]

Newsgroups comp.databases.postgresql
Date 2019-12-28 08:30 -0800
References (3 earlier) <5e0717d0$0$10269$e4fe514c@news.xs4all.nl> <f8d31fcf-af88-457c-8b78-a456b3f19654@googlegroups.com> <5e073d4a$0$10273$e4fe514c@news.xs4all.nl> <6b2f2a6b-bddf-4398-8ba8-4aa5b4ea6e46@googlegroups.com> <5e077cca$0$10261$e4fe514c@news.xs4all.nl>
Message-ID <d8e3fa33-7f47-4fa1-b43f-3a7f6a14142f@googlegroups.com> (permalink)
Subject Re: calculating pi [Re: php and big data and predictive modelling...]
From robamman2019@gmail.com

Show all headers | View raw


On Saturday, December 28, 2019 at 6:03:24 PM UTC+2, Luuk wrote:
> On 28-12-2019 13:55, robamman2019@gmail.com wrote:
> > On Saturday, December 28, 2019 at 1:32:27 PM UTC+2, Luuk wrote:
> >> On 28-12-2019 11:22, robamman2019@gmail.com wrote:
> >>> On Saturday, December 28, 2019 at 10:52:33 AM UTC+2, Luuk wrote:
> >>>> On 26-12-2019 23:18, Azathoth Hastur wrote:
> >>>>> On Sunday, December 22, 2019 at 5:43:09 AM UTC-5, robamm...@gmail.com wrote:
> >>>>>> pühapäev, 29. september 2019 18:41.47 UTC+3 kirjutas azathot....@gmail.com:
> >>>>>>> Anyone doing php psotgresql for this?
> >>>>>>>
> >>>>>>> The java framework craziness I see at work must have better alternatives!
> >>>>>>
> >>>>>> I have used postgresql and php. And doing some statistical calculations in php. For example I have tried to calculate Pi. I used the so called "bombing"(method with random numbers). But the result came out so that the first 4 numbers of the number were only correct. 3.141 . I ran the code about 50 times, and there were no differences in the about 3-4 first numbers. Maybe the "bombing" method is not very good for this. I got the idea of it from schools programming lesson. I'm sure other mathematical methods would be better, but it was intresting for me to program and test it.
> >>>>>>
> >>>>>> Basically I think, if you can program, then there is no difference in which language you program.
> >>>>>>
> >>>>>> With the best wishes,
> >>>>>> Kristjan Robam
> >>>>>
> >>>>> Why not use the postgresql to calculate and sort, and php to just get in put and output?
> >>>>>
> >>>>
> >>>> Ok, its not postgresql, i tried to do 'calculate pi' in MSSQL 2017:
> >>>>
> >>>> WITH pi (x, f, a, kwartpi) as
> >>>>      (SELECT 1,1.0,1,
> >>>>          CONVERT(float(53), 0.0)
> >>>>      UNION ALL
> >>>>      SELECT x+2,-f,x,
> >>>>          CONVERT(float(53),kwartpi+(f/x)) from pi where x<20000 and x>=a
> >>>>      )
> >>>>
> >>>> SELECT top 10
> >>>>      x, 4*kwartpi
> >>>> FROM pi
> >>>> order by x desc
> >>>> OPTION(MAXRECURSION 10000)
> >>>>
> >>>>
> >>>> Output:
> >>>> x
> >>>> ----------- ----------------------
> >>>> 20001       3,14149265341197
> >>>> 19999       3,14169266341197
> >>>> 19997       3,14149263340797
> >>>> 19995       3,14169268341997
> >>>> 19993       3,14149261339597
> >>>> 19991       3,14169270343597
> >>>> 19989       3,14149259337597
> >>>> 19987       3,14169272345997
> >>>> 19985       3,14149257334797
> >>>> 19983       3,14169274349197
> >>>>
> >>>> (10 rows affected)
> >>>>
> >>>>
> >>>> Completion time: 2019-12-28T09:49:58.2239611+01:00
> >>>>
> >>>> *Will postgresql be better in doing this job?*
> >>>>
> >>>>
> >>>> Follow-up set to comp.databases.postgresql
> >>>> -- 
> >>>> Luuk
> >>>
> >>> What is the idea of this ?
> >>> I used a circle inside a square and Pi=(Circle area)*4/(Square area)
> >>> And by the way the First numbers of pi area 3.14159.
> >>> My algorithm: https://groups.google.com/forum/#!topic/eesti-programmeerijad/qieWYzn8RxI
> >>>
> >>>
> >>> With the best wishes,
> >>> Kristjan Robam
> >>>
> >>
> >> Ah, this method
> > Ok. Proof.
> > d = 2r
> > Pi = C / 2r
> > Here we need a picture. Please look at :
> > https://www.basic-mathematics.com/proof-of-the-area-of-a-circle.html
> > Area of a circle = (1/2)r*2Pi*r
> > Area of a Circle=r*r*Pi
> > Area of a Square=(2r)*(2r)=4r*r
> > 
> > r*r*Pi     Points in Circle
> > ------- =~ -----------------
> > 4r*r       Points in Square
> > 
> > So Pi =~ 4*(Points in Circle)/(Points in Square)
> > The bigger the Square, the more precise Pi we have.
> > 
> >> it looks better than trying to calculate 4*arctan(1), which can be
> >> written as the sum of 1 - 1/3 + 1/5 - 1/7 + 1/9 - 1/11 ......
> >>
> >> But https://en.wikipedia.org/wiki/Squaring_the_circle pages says:
> >> "In 1882, the task was proven to be impossible,"
> >>
> >>
> >> -- 
> >> Luuk
> > 
> 
> If i do more steps, my result should get more precise (but it is not 
> because of precision of used tool )
> 
> Doing it your way you have to do a lot of steps to get, close to, a 
> correct value.
> 
> -- 
> Luuk

I think it would take about same time to calculate into the same precision,
because the basic idea behind it all should be the Pythagoras theorem a*a+b*b=c*c. There is a Javascript Library BigNumber, with which it all could be resolved.

Here is a code, that uses it. It is only a test to use BigNumber, but it would need only few modifications, for it to calculate Pi in real, if somebody would like to use it.

-----------------------------------

Findingpi.html:

<html>
<head>
<meta charset="utf-8">
<title>Calculating pi</title>
<script src='bignumber/bignumber.js'></script>
<style>
#pivalue {
    border: 1px solid green;
	margin: 5px;
	height: 40px;
	width: 300px;
}
</style>
</head>
<body>

<form onsubmit="findnumber(); return false;">
<h1>
<p>Pi(The Circle circumference divided with it's diameter)</p>
<p>Pi can be calculated with a circle inside a square. The Pi estimated value is the following: (Circle area)*4/(Square area).
</p>
<p>Please enter square width <input style="width: 100px; height: 40px; font-size: 30px;" type="text" id="squarew"></input></p>
<p><button type="submit" style="width: 200px; height: 40px; font-size: 30px;">Calculate pi</button></p>
<p id="pivalue"></p>
<p>For estonians: Soovitan kasutada translate.google.com-i kui inglise keelt ei mõika.</p>

</h1>

</form>
<script>
var incircle=0;
var area=0;
function pointisincircle(xx0,yy0,xx,yy,radius) {
      return (xx.minus(xx0).multipliedBy(xx.minus(xx0)).plus(yy.minus(yy0).multipliedBy(yy.minus(yy0))).isLessThanOrEqualTo(radius.multipliedBy(radius)));
}
function findnumber() {
    incircle=0;
	var squarew=parseInt(document.getElementById("squarew").value);
	//document.getElementById("pivalue").innerHTML
	//alert(howmanynumbers);
	area=squarew*squarew;
    var xmax=new BigNumber(squarew);
    var ymax=new BigNumber(squarew);
	var radius=new BigNumber(squarew/2);
    var x0=new BigNumber(squarew).dividedBy(new BigNumber(2));
    var y0=new BigNumber(squarew).dividedBy(new BigNumber(2));
	var x=new BigNumber(0);
	var y=new BigNumber(0);
    var increment=new BigNumber(1);
	var run2=true;
	while(true) {
	      //alert(x.toString());
		  //console.log("x: "+x.valueOf());
	      if(x.isEqualTo(xmax)) break;
		  while(run2) {
		        if(y.isEqualTo(ymax)) run2=false;
				if(run2) {
					y=y.plus(1);
					//console.log(x.valueOf());
					//console.log(y.valueOf());
				         	
				} else {
					y=new BigNumber(0);
				}
				if(pointisincircle(x0,y0,x,y,radius)) incircle++;
		  }
		  run2=true;
		  x=x.plus(1);
	}
	var pivalue=incircle*4/area;
	//alert("In circle: "+incircle+" Area: "+area+" Pi value: "+pivalue);
	document.getElementById("pivalue").innerHTML=pivalue;
}
</script>
</body>
</html>


-----------------------------------
With the best wishes,
Kristjan Robam

Back to comp.databases.postgresql | Previous | NextPrevious in thread | Next in thread | Find similar


Thread

Re: calculating pi [Re: php and big data and predictive modelling...] robamman2019@gmail.com - 2019-12-28 02:22 -0800
  Re: calculating pi [Re: php and big data and predictive modelling...] robamman2019@gmail.com - 2019-12-28 04:55 -0800
    Re: calculating pi [Re: php and big data and predictive modelling...] robamman2019@gmail.com - 2019-12-28 08:30 -0800
    Re: calculating pi [Re: php and big data and predictive modelling...] robamman2019@gmail.com - 2019-12-28 09:40 -0800
      Re: calculating pi [Re: php and big data and predictive modelling...] robamman2019@gmail.com - 2019-12-29 04:15 -0800

csiph-web