引言

圆周率(Pi)是圆的周长与直径的比值,一般用希腊字母 π 表示,是数学中最重要和最奇妙的数字之一。本文教你如何使用 Python 编程实现圆周率的简单计算。

计算

蒙特卡罗法


1×1 的正方形里面有一个内切圆。向该正方形区域内随机散点(散点总数记为 S),对于每一个点,其落在圆内的概率是:π⋅0.521×1=0.25π\frac {\pi \cdot 0.5^2}{1×1}=0.25\pi1×1π⋅0.52​=0.25π,散点结束后,统计其落在圆内的点数,并记为 N。

一般来说,随着实验次数的增多,频率会接近于概率。当实验次数趋向于无穷时,频率的极限就是概率。

因此,当 S 足够大时,我们可以简单认为:0.25π=NS0.25\pi=\frac{N}{S}0.25π=SN​,即π=4NS\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<=0.5**2: # 通过比较试验点到圆心的欧式距离与圆半径的大小,判断该点是否在圆内N+=1else:pass
PI = 4*N/S
print(PI)

公式法

π=∑n=0∞[116n(48n+1−28n+4−18n+5−18n+6)]\pi = \sum_{n=0}^\infty [\frac{1}{16^n}(\frac{4}{8n+1}-\frac{2}{8n+4}-\frac{1}{8n+5}-\frac{1}{8n+6})] π=n=0∑∞​[16n1​(8n+14​−8n+42​−8n+51​−8n+61​)]

# 公式法(计算公式参上)
PI = 0
N = 1000
for n in range(int(N)):PI += 1/pow(16,n) * (4/(8*n+1) - 2/(8*n+4) - 1/(8*n+5) - 1/(8*n+6))
print(PI)

参考

https://baike.baidu.com/item/圆周率/139930

【Python】圆周率 Pi (π) 的计算(蒙特卡罗法+公式法)相关推荐

  1. c语言编程快速收敛的圆周率计算,[原创]圆周率PI的计算(精确到几十万位)

    [原创]圆周率PI的计算(精确到几十万位) //环境:VC6.0,Console Application //原理:π=2+1/3*(2+2/5*(2+3/7*(2+... //特点:内嵌汇编提速并扩 ...

  2. python函数——根据经纬度计算距离公式的错误及修正

    #coding: utf-8 #封装函数 import math def cal_dis(latitude1, longitude1,latitude2, longitude2):latitude1 ...

  3. 行列式的计算(c++)——公式法(5阶)和递推法(n阶)

    行列式的计算 行列式的众多正经的不正经的计算方法就属线性代数的内容了,这里不过多讨论,主要介绍代码中会用到的两种: 公式计算 行列式值的计算公式为 ∣a11a12⋯a1na21a22⋯a2n⋮⋮⋯⋮a ...

  4. 【无标题】python利用公式法计算圆周率

    # 计算圆周率(公式法) i = 1 j = 1 s = 0 print('******圆周率公式法******') for i in range(1, 100):print(f'循环{i}次,第一次 ...

  5. python计算圆周率_python模拟蒙特·卡罗法计算圆周率

    蒙特·卡罗方法是一种通过概率来得到问题近似解的方法,在很多领域都有重要的应用,其中就包括圆周率近似值的计问题. 假设有一块边长为2的正方形木板,上面画一个单位圆,然后随意往木板上扔飞镖,落点坐标(x, ...

  6. 用python计算圆周率_用python计算圆周率PI

    一.计算圆周率PI的方法 (一)公式法: 1 #CalPiV1.py 2 pi =03 N = 100 4 for k inrange(N):5 pi += 1/pow(16, k) * (4 / ( ...

  7. python计算圆周率近似值_python计算圆周率pi的方法

    本文实例讲述了python计算圆周率pi的方法.分享给大家供大家参考.具体如下: from sys import stdout scale = 10000 maxarr = 2800 arrinit ...

  8. python用bbp公式求圆周率_神奇的BBP公式,可独立计算圆周率任何一位数字,曾震惊数学界!...

    今天,我们来看一个神奇的关于圆周率的公式. 一千多年来,数学家们采用各种办法,来求圆周率的更高精度,比如我国伟大的数学家祖冲之(429-500,字文远),就曾利用复杂的割圆术,将圆周率精确到小数点第七 ...

  9. python中莱布尼茨计算圆周率_python圆周率盘算(带进度条)

    一.要求: 1.盘算到圆周率后面越多位越好. 2.用进度条显示盘算的进度. 3.要求给出圆周率Π的详细盘算方法和注释. 二.算法: 1.拉马努金公式: 2.高斯-勒让德公式: 设置初始值: 频频执行以 ...

最新文章

  1. Can't connect to X11 window server using ':1.0' as the value of the DISPLAY variable.
  2. python读音发音器-python3 - 文本读音器
  3. 使用ffmpeg+nginx将rtmp直播流转为hls直播流
  4. 三、linux目录浏览管理及维护
  5. html2image乱码问题,HtmlImageGenerator字体乱码问题解决、html2image放linux上乱码问题解决...
  6. c语言中的标准数据类型,C语言中的基本数据类型
  7. Auto type deducing
  8. 2016: 神殿(求二进制1的个数最多的那个数)
  9. 【安全牛学习笔记】手动漏洞挖掘(二)
  10. Copula函数理论及实现(三维)-MATLAB
  11. ifix 读写mysql_[转载]vb6读取ifix实时数据库和历史数据库
  12. linux怎么关闭超线程模式,Linux动态启用/禁用超线程技术的方法详解
  13. 《摩根写给儿子的32封信》 03 企业家的资质
  14. 服务器winsxs文件夹怎么清理工具,winsxs文件夹怎么清理 winsxs文件夹清理方法教程...
  15. mysql数据长度过长,1406 - Data too long for column ‘express_company‘ at row 1
  16. 网上音乐商店项目文档
  17. 情人节简单浪漫烟花html的代码
  18. 原创小说 - 爱人失踪(第一部)
  19. 小白避坑系列--Ubuntu1804 RTX3060显卡实现双屏
  20. 【mpvue】小程序开发入门

热门文章

  1. [附源码]Nodejs计算机毕业设计科技类产品众筹系统Express(程序+LW)
  2. 企业为什么需要B2B电商系统
  3. 为什么这么多人想转行做产品经理?
  4. SAIL-IMX7D开发板截屏工具gsnap移植
  5. 哈工大软件构造课程知识点总结(二)
  6. Python每日笔记打卡_day3
  7. leetcode-database-262. Trips and Users
  8. 米思齐(Mixly)图形化系列教程(六)-for循环
  9. 数据分析实际案例之:pandas在餐厅评分数据中的使用
  10. Z-BLOG 懒人一键采集插件,自动采集+发布+推送