蒙特卡洛算法,用于计算圆周率

原创
03/03 15:46
阅读数 57
/**
 * 蒙特卡洛算法,用于计算圆周率
 * @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));

 

展开阅读全文
加载中
点击引领话题📣 发布并加入讨论🔥
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部