引言

圆周率(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. Socket编程中的强制关闭与优雅关闭及相关socket选项
  2. Linux内核设计基础(一)之中断处理
  3. python浪漫代码-Python打造浪漫的心形,助你情人节表白成功!
  4. RTMP协议发送H.264编码及AAC编码的音视频,实现摄像头直播
  5. 重学python入门知识
  6. 云南计算机一级c类基础知识,云南省大学计算机 一级C类 【多选题及答案】
  7. java内存管理(堆、栈、方法区)
  8. wls12C启用Gzip
  9. Java 8 Base64 编码解码
  10. ENSP安装教程【手把手教学】
  11. DroidCam通过数据线调用手机摄像头的方法一
  12. 讲给后台程序员看的前端系列教程(17)——文本样式
  13. 第二届“马栏山”杯国际音视频算法大赛音乐节拍检测题参赛总结及分享(Rank7)
  14. HBuilderX使用手机模拟器进行App开发详解【0基础讲解】
  15. 企业微信根据微信联系人批量自动发送邀请,还可根据手机号批量添加
  16. 3374——数据结构实验之查找二:平衡二叉树
  17. hmc如何进入aix系统_hmc操作手册.doc
  18. 小绮的踩坑日记|小土堆pytorch视频——tensorboard
  19. Python 后台基于 PackerNg 格式动态生成 APK 渠道包
  20. MySQL 分表方案及中间件介绍

热门文章

  1. BZOJ 3698 XWW的难题
  2. Codeforces Round #533(Div. 2) A.Salem and Sticks
  3. Find X3系列能实现OPPO的高端破局之梦吗?
  4. 哈工大软件构造 Git使用
  5. 深入浅出GUI线程安全(三)
  6. 厦门计算机中专学校,厦门十大中专学校
  7. 粗糙的量刑模型-随机森林算法
  8. 弘辽科技:拼多多专属推广怎么设置时间。
  9. 孤岛危机安装时出现dll错误
  10. 【力扣刷题】剑指 Offer 40. 最小的k个数(大顶堆)