Files
JavaScript/Maths/PiApproximationMonteCarlo.js
Ephraim Atta-Duncan e112434dee Add tests to Math (#423)
* Add prettier config

* test: add test to check for absolute function

* chore: es5 to es6

* test: add test to check mean function

* test: add test for sum of digit

* test: add test for factorial

* test: add test for fibonnaci

* test: add test for find HCF

* test: add test for lcm

* test: add gridget test

* test: add test for mean square error

* test: add test for modular binary exponentiation

* test: add tests for palindrome

* test: add test for pascals triangle

* test: add tests for polynomial

* test: add tests for prime check

* test: add tests for reverse polish notation

* test: add tests for sieve of eratosthenes

* test: add tests for pi estimation monte carlo method

* chore: move tests to test folder

* chore: fix standardjs errors
2020-10-12 01:17:49 +05:30

22 lines
654 B
JavaScript

// Wikipedia: https://en.wikipedia.org/wiki/Monte_Carlo_method
// Video Explaination: https://www.youtube.com/watch?v=ELetCV_wX_c
const piEstimation = (iterations = 100000) => {
let circleCounter = 0
for (let i = 0; i < iterations; i++) {
// generating random points and checking if it lies within a circle of radius 1
const x = Math.random()
const y = Math.random()
const radius = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2))
if (radius < 1) circleCounter += 1
}
// fomula for pi = (ratio of number inside circle and total iteration) x 4
const pi = (circleCounter / iterations) * 4
return pi
}
export { piEstimation }