【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}")

运行结果:

相关推荐
Rauser Mack8 小时前
Vibe coding游戏实战:零代码编程五子棋小游戏
人工智能·python·游戏·html·prompt
剑挑星河月8 小时前
234. 回文链表
java·数据结构·算法·leetcode·链表
FriendshipT8 小时前
Ultralytics:解读PSABlock模块
人工智能·pytorch·python·深度学习·目标检测
hhzz9 小时前
全局实例跟踪(GIT):像人类一样定位目标——VideoCube基准与SiamFC实战全解析
大数据·python·计算机视觉·目标跟踪·数据分析
hhzz17 小时前
基于监控视频的水位尺自动识别技术方案与实现
python·opencv·yolo·图像识别·cv
yongche_shi17 小时前
ragas官方文档中文版(五十)
开发语言·python·ai·ragas·如何评估和改进 rag 应用
QiLinkOS18 小时前
第三视觉理解徐玉生与他的商业活动(30)
大数据·c++·人工智能·算法·开源协议
疯狂打码的少年18 小时前
【操作系统】页面置换算法(OPT/FIFO/LRU)
算法
小O的算法实验室18 小时前
2026年CIE,优化客货协同运输:综合地铁系统的列车容量动态分配
算法
weixin_4080996718 小时前
OCR批量识别图片方案:从手动处理到自动化API系统(Python/Java/PHP实战)
图像处理·python·ocr·文字识别·api调用·批量识别·石榴智能