Monte Carlo methods: Difference between revisions
Content deleted Content added
→{{header|Factor}}: spacing |
PureBasic |
||
Line 623: | Line 623: | ||
100000 3,14712 0,1759409006731298209938938800 |
100000 3,14712 0,1759409006731298209938938800 |
||
1000000 3,141364 0,0072782698142600895432451100</pre> |
1000000 3,141364 0,0072782698142600895432451100</pre> |
||
=={{header|PureBasic}}== |
|||
<lang PureBasic>OpenConsole() |
|||
Procedure.d MonteCarloPi(throws.d) |
|||
inCircle.d = 0 |
|||
For i = 1 To throws.d |
|||
randX.d = (Random(2147483647)/2147483647)*2-1 |
|||
randY.d = (Random(2147483647)/2147483647)*2-1 |
|||
dist.d = Sqr(randX.d*randX.d + randY.d*randY.d) |
|||
If dist.d < 1 |
|||
inCircle = inCircle + 1 |
|||
EndIf |
|||
Next i |
|||
pi.d = (4 * inCircle / throws.d) |
|||
ProcedureReturn pi.d |
|||
EndProcedure |
|||
PrintN ("'built-in' #Pi = " + StrD(#PI,20)) |
|||
PrintN ("MonteCarloPi(10000) = " + StrD(MonteCarloPi(10000),20)) |
|||
PrintN ("MonteCarloPi(100000) = " + StrD(MonteCarloPi(100000),20)) |
|||
PrintN ("MonteCarloPi(1000000) = " + StrD(MonteCarloPi(1000000),20)) |
|||
PrintN ("MonteCarloPi(10000000) = " + StrD(MonteCarloPi(10000000),20)) |
|||
PrintN("Press any key"): Repeat: Until Inkey() <> "" |
|||
</lang>Output: |
|||
<pre>'built-in' #PI = 3.14159265358979310000 |
|||
MonteCarloPi(10000) = 3.17119999999999980000 |
|||
MonteCarloPi(100000) = 3.14395999999999990000 |
|||
MonteCarloPi(1000000) = 3.14349599999999980000 |
|||
MonteCarloPi(10000000) = 3.14127720000000020000 |
|||
Press any key</pre> |
|||
=={{header|Python}}== |
=={{header|Python}}== |