/**
* 蒙特卡洛算法,用于计算圆周率
* @returns
*/
function calcPi(totalPoints = 100000) {
if (!totalPoints || totalPoints < 100000) {
totalPoints = 100000;
}
// 定义一个半径
let radius = 1;
// 计算圆的面积
// let circleArea = Math.PI * radius * radius;
// 定义一个计数器
let count = 0;
// 定义一个随机点的总数
let totalPoints = 100000000;
// 遍历所有的随机点
for (let i = 0; i < totalPoints; i++) {
// 生成一个随机点
let x = Math.random();
let y = Math.random();
// 计算随机点距离原点的距离
let dist = x * x + y * y;
// 如果距离小于半径,则计数器加1
if (dist < radius) {
count++;
}
}
// 计算圆周率
let pi = 4 * count / totalPoints;
return pi;
}
console.log(calcPi(100000000));