mirror of
https://github.com/TheAlgorithms/JavaScript.git
synced 2025-07-15 02:33:35 +08:00

* 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
22 lines
654 B
JavaScript
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 }
|