Monte Carlo methods: Difference between revisions
→JS ES6
(→JS ES6) |
|||
Line 1,464:
===ES6===
<lang JavaScript>(() => {
// --- APPROXIMATION OF PI BY A MONTE CARLO METHOD ---
// monteCarloPi :: Int -> Float
const monteCarloPi = n =>
4 *
const [x, y] = [rnd(), rnd()];
return (x * x) + (y * y) < 1 ?
1 + a
) : a;
}, 0) / n;
// --------------------- GENERIC
//
const
n => Array.from({
length:
}, (_, i) => m + i);
// rnd :: () -> Float
Line 1,487 ⟶ 1,492:
// ---------------------- TEST -----------------------
//
return enumFromTo(3)(7).forEach(x => {
const nSamples = 10 ** x;
console.log(
`${nSamples} samples: ${monteCarloPi(nSamples)}`
})();▼
);
});
▲})();</lang>
{{Out}} For example:
<pre>1000 samples: 3.064
10000 samples: 3.1416
100000 samples: 3.14756
1000000 samples: 3.142536
10000000 samples: 3.142808</pre>
=={{header|jq}}==
|