Я создал этот скрипт
const size = 500;
const iterations = 10000000;
let inside = 0;
for (let i = 0; i < iterations; i++) {
var Xpos = Math.floor(Math.random() * size);
var Ypos = Math.floor(Math.random() * size);
var dist = Math.hypot(Ypos-Xpos, size / 2 - size / 2);
if (dist <= size / 2) {
inside++;
}
}
document.write(4 * inside / iterations);
см. https://jsfiddle.net/tr8tnxdm/3/, который помещает 100000000 точек в сетку 500, 500, точки внутри круга отмечаются и, в конце концов, делятся на общую сумму и умножаются на 4.
Это должно привести к очень приблизительной оценке числа пи, но это не так, и я не могу понять, почему. Я знаю, что это не из-за ниже или равно, так как я также попробовал только ниже (строка 11)