【Hadoop】-拓展:蒙特卡罗算法求PI的基础原理[10]

Monte Carlo蒙特卡罗算法(统计模拟法)

Monte Carlo算法的基本思想是:以模拟的"实验"形式、以大量随机样本的统计形式,来得到问题的求解。比如,求圆周率,以数学的方式是非常复杂的,但是我们可以以简单的形式去求解:

如图,我们在正方形内,随机落点,统计落在1/4圆内的点和总店数量的比例即可得到1/4的PI,最终乘以4即可得到PI。比如,红色点的数量比全部点的数量,结果是0.756,那么乘以4就可以得到3.06,3.06就是求得的PI。

  • 所以,此方法,需要大量的样本(落点),样本越多越精准。

示例代码

如下,以python语言实现的蒙特卡罗求PI

复制代码
import random
sample_num = int(input("请输入样本数:"))
inner_point = 0
pi = 0
for i in range(sample_num):
    a = random.uniform(0,1)
    b = random.uniform(0,1)
    if a*a + b*b <= 1:
        inner_point = inner_point + 1
pi = (inner_point / sample_num) * 4
print(f"样本数:{sample_num},pi近似等于{pi}")

运行结果:

相关推荐
XWalnut几秒前
LeetCode刷题 day9
java·算法·leetcode
bIo7lyA8v几秒前
算法稳定性分析中的随机扰动建模的技术9
算法
小陈工4 分钟前
2026年4月8日技术资讯洞察:边缘AI推理框架竞争白热化,Python后端开发者的机遇与挑战
开发语言·数据库·人工智能·python·微服务·回归
赵药师6 分钟前
YOLO中task.py改复杂的模块
python·深度学习·yolo
谢白羽9 分钟前
vllm抢占机制详解
算法·vllm
Hello--_--World9 分钟前
Vue2的 双端 diff算法 与 Vue3 的 快速diff 算法
前端·vue.js·算法
大飞记Python15 分钟前
【2026更新】Python基础学习指南(AI版)——03内置函数
人工智能·python
坚持编程的菜鸟17 分钟前
The Blocks Problem
数据结构·c++·算法
2301_8227032018 分钟前
Flutter 框架跨平台鸿蒙开发 - 家庭时间胶囊应用
算法·flutter·华为·图形渲染·harmonyos·鸿蒙
tankeven18 分钟前
HJ171 排座椅
c++·算法