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

运行结果:

相关推荐
m沐沐9 分钟前
【深度学习】YOLOv2目标检测算法——改进点、网络结构与聚类先验框解析
人工智能·pytorch·深度学习·算法·yolo·目标检测·transformer
不会就选b13 分钟前
算法日常・每日刷题--<链表>3
数据结构·算法·链表
geovindu40 分钟前
go: Iterative Algorithms
开发语言·后端·算法·golang·迭代算法
郭老二2 小时前
【Python】基本语法:装饰器语法糖@
python
Zachery Pole3 小时前
CCF-CSP备战NO.7【队列】
算法
闪电悠米3 小时前
力扣hot100-48.旋转图像-转置翻转详解
算法·leetcode·职场和发展
_Jimmy_3 小时前
Agent常用检索器的详细介绍
python·langchain
满天星83035773 小时前
【算法】最长递增子序列(三种解法)
算法
小柯南敲键盘3 小时前
图片翻译API接入与自动化实现指南
运维·python·自动化
旅僧4 小时前
Q-learning(自用)
python·机器学习