Jump to content

Monte Carlo methods: Difference between revisions

m
→‎ES6: Slight rearrangement
m (→‎ES6: Slight rearrangement)
Line 956:
 
// monteCarloPi :: Int -> Float
const monteCarloPi = n => {
return 4 * range(1, n)
.reduce(a => {
const [x, y] = [rnd(), rnd()];
return x * x + y * y < 1 ? a + 1 : a;
}, 0) / n;
 
const rnd = Math.random;
 
// GENERIC FUNCTIONS
return 4 * range(1, n)
.reduce(a => {
const [x, y] = [rnd(), rnd()];
return x * x + y * y < 1 ? a + 1 : a;
}, 0) / n;
}
 
// range :: Int -> Int -> [Int]
Line 972 ⟶ 971:
length: Math.floor(n - m) + 1
}, (_, i) => m + i);
 
// rnd :: () -> Float
const rnd = Math.random;
 
 
// TEST
Line 977 ⟶ 980:
.map(_ => monteCarloPi(10000000));
 
// e.g. -> [3.1413681413288, 3.14089921409792, 3.1412084141154, 3.1421321415712, 3.14130121416284]
})();</lang>
 
{{Out}} (5 sample runs)
<lang JavaScript>[3.1413681413288, 3.14089921409792, 3.1412084141154, 3.1421321415712, 3.14130121416284]</lang>
 
=={{header|Julia}}==
9,659

edits

Cookies help us deliver our services. By using our services, you agree to our use of cookies.