圆周率(Pi)是圆的周长与直径的比值,一般用希腊字母 π 表示,是数学中最重要和最奇妙的数字之一。本文教你如何使用 Python 编程实现圆周率的简单计算。
计算 蒙特卡罗法 1×1 的正方形里面有一个内切圆。向该正方形区域内随机散点(散点总数记为 S),对于每一个点,其落在圆内的概率是:
π
⋅
0.
5
2
1
×
1
=
0.25
π
\frac {\pi \cdot 0.5^2}{1×1}=0.25\pi
1×1π⋅0.52=0.25π,散点结束后,统计其落在圆内的点数,并记为 N。
一般来说,随着实验次数的增多,频率会接近于概率。当实验次数趋向于无穷时,频率的极限就是概率。
因此,当 S 足够大时,我们可以简单认为: 0.25 π = N S 0.25\pi=\frac{N}{S} 0.25π=SN,即 π = 4 N S \pi=\frac{4N}{S} π=S4N
提示:如何判断点在圆内?计算点到圆心的欧式距离,比半径小就在圆内,比半径大就在圆外。
# 蒙特卡罗法(统计试验法)
import random # 导入随机模块
S = 1e6 # 变量S为试验总次数(值设置得越大,PI的计算越准确,即频率越逼近于概率)
N = 0 # 变量N用于统计落在圆内的试验点的个数
for i in range(int(S)):
x = random.random() # 获取0-1之间的随机数
y = random.random() # 获取0-1之间的随机数
d = (x-0.5)**2+(y-0.5)**2 # 计算试验点到圆心的欧式距离的平方
if d
关注
打赏
- 【Python】旋转矩阵与旋转向量的相互转换(OpenCV)
- 记录配置打印机遇到的三个问题
- 【PyTorch】切记:GeForce RTX 3090 显卡仅支持 CUDA 11 以上的版本!
- Human3.6M 数据集介绍及下载
- 解决DCNv2在Linux上安装失败的问题
- 【原创工具 | OpenCV-CamCalib】一个基于 OpenCV 的自动化相机数据采集和标定程序
- 【Windows】局域网内共享文件夹的设置方法
- 【Python】根据 URL 读取网络图片的两种方式(OpenCV)
- 【Linux】Ubuntu 20.04 深度学习 GPU 环境配置(CUDA Toolkit 11.7 + cuDNN v8.4.1)
- 【Qt for Python】控件显示问题(默认不显示没有父控件的控件)