Initial data commit
This commit is contained in:
parent
72d218235f
commit
f23f22d71c
199087 changed files with 3378941 additions and 0 deletions
20
Task/Monte-Carlo-methods/JavaScript/monte-carlo-methods-1.js
Normal file
20
Task/Monte-Carlo-methods/JavaScript/monte-carlo-methods-1.js
Normal file
|
|
@ -0,0 +1,20 @@
|
|||
function mcpi(n) {
|
||||
var x, y, m = 0;
|
||||
|
||||
for (var i = 0; i < n; i += 1) {
|
||||
x = Math.random();
|
||||
y = Math.random();
|
||||
|
||||
if (x * x + y * y < 1) {
|
||||
m += 1;
|
||||
}
|
||||
}
|
||||
|
||||
return 4 * m / n;
|
||||
}
|
||||
|
||||
console.log(mcpi(1000));
|
||||
console.log(mcpi(10000));
|
||||
console.log(mcpi(100000));
|
||||
console.log(mcpi(1000000));
|
||||
console.log(mcpi(10000000));
|
||||
39
Task/Monte-Carlo-methods/JavaScript/monte-carlo-methods-2.js
Normal file
39
Task/Monte-Carlo-methods/JavaScript/monte-carlo-methods-2.js
Normal file
|
|
@ -0,0 +1,39 @@
|
|||
(() => {
|
||||
"use strict";
|
||||
|
||||
// --- APPROXIMATION OF PI BY A MONTE CARLO METHOD ---
|
||||
|
||||
// monteCarloPi :: Int -> Float
|
||||
const monteCarloPi = n =>
|
||||
4 * enumFromTo(1)(n).reduce(a => {
|
||||
const [x, y] = [rnd(), rnd()];
|
||||
|
||||
return (x ** 2) + (y ** 2) < 1 ? (
|
||||
1 + a
|
||||
) : a;
|
||||
}, 0) / n;
|
||||
|
||||
|
||||
// --------------------- GENERIC ---------------------
|
||||
|
||||
// enumFromTo :: Int -> Int -> [Int]
|
||||
const enumFromTo = m =>
|
||||
n => Array.from({
|
||||
length: 1 + n - m
|
||||
}, (_, i) => m + i);
|
||||
|
||||
|
||||
// rnd :: () -> Float
|
||||
const rnd = Math.random;
|
||||
|
||||
|
||||
// ---------------------- TEST -----------------------
|
||||
// From 1000 samples to 10E7 samples
|
||||
return enumFromTo(3)(7).forEach(x => {
|
||||
const nSamples = 10 ** x;
|
||||
|
||||
console.log(
|
||||
`${nSamples} samples: ${monteCarloPi(nSamples)}`
|
||||
);
|
||||
});
|
||||
})();
|
||||
Loading…
Add table
Add a link
Reference in a new issue