他抛了27亿粒米粒儿近似计算出了圆周率

计算机投针实验程序,蒲丰投针问题 18世纪,蒲丰提出以下问题:设我们有一个以平行且等距木纹铺成的地板(如概述图),随意抛一支长度比木纹之间距离小的针,求针和其中一条木纹相交的概率。并以此概率,布丰提出的一种计算圆周率的方法——随机投针法。这就是蒲丰投针问题(又译“布丰投针问题”)。中文名蒲丰投针问题外文名Buffon's needle problem别名布丰投针问题提出者布丰提出时间1777年适用领域应用学科计算圆周率,概... 阅读详情

他抛了27亿粒米粒儿近似计算出了圆周率

18世纪,法国数学家布丰曾用抛针法计算出了圆周率的近似值。

今天,中国的一个造作男孩抛了27亿粒米粒儿也计算出了圆周率的近似值。

一、理论基础

布丰的计算方法在本质上是一种概率问题。接受过高中教育的童鞋应该都学习过几何概型。

首先我们在地板上画出一个正方形的区域,并画出其内切圆。

现在我们向这个正方形区域抛一个“米粒儿”,那么这个米粒儿落入圆形区域的概率应当等于圆的面积比上正方形的面积。

通过化简不难得出,圆周率π的值为该概率的四倍。

那么我们便有了一种计算圆周率的新思路,通过计算米粒儿落入圆形区域的概率来间接计算圆周率。

只要你有足够的耐心和毅力,抛的米粒儿越多,样本容量越大,数值越精确。

但显然,这是一种十分可耻的浪费粮食的行为,所以我们不妨借助计算机模拟来帮助我们实现这一过程。

二、算法实现

现在构建一个平面直角坐标系,画出一个边长为2的正方形以及一个半径为1的圆。

易知圆的方程为,我们借助计算机随机生成一组坐标(x,y),相当于向该区域抛出了一粒米,其中x,y的取值范围均为[0,2]。对该随机坐标进行判断,如果我们即认为“米粒儿”落入了圆形区域,最后统计抛出米粒的个数和落入圆形区域的个数即可求出概率,从而间接计算圆周率。

三、C++语言程序实现

在这里简单写了一个程序,仅供参考。

程序每抛10000次米粒儿进行一次结果输出,同时以3.1415926为标准值计算出相对误差。之所以不让他每抛一次输出一次,是为了让计算机把更多的精力放在计算上,提高计算效率。

编译,运行

程序运行后,鄙人就出去玩了,让他自己抛去吧哈哈哈哈。

当我回来的时候,这家伙已经抛了27亿多粒米粒儿,有21亿多个米粒儿落入了圆形区域,得到的圆周率稳定在3.139563左右,相对误差仅为0.000006%

四、总结

在误差允许范围内可以说是比较准确了。虽然这种方法得到的数值不一定准确,但这未尝不是一种机器计算常量的新思路。

用C语言实现布丰投针计算圆周率问题 今天遇到一个布丰投针的问题,要用编程来实现,我就看着关于布丰投针的说明和简化公式,提炼出了需要的地方 1. 针长为二分之一平行线之间间距的时候结果最为接近 2. 圆周率等于二倍的针长比上平行线间距与概率的积 3. 针的中心点到最近的平行线的距离小于针与平行线之间夹角的正弦乘以针长的一半,则代表针与平行线相交 4. 针与平行线相交的个数比上总投针的个数就可 阅读详情

相关推荐

圆周率估算的一种方式——蒲丰投针

从很久很久以前,科学家们就热衷于计算圆周率ππ\pi ,计算的准确度越来越高,出发点也各不相同。那ππ\pi到底是怎么计算出来的呢? 中国的刘辉提出了割圆术算法。他论证将圆分割成多边形,分割来越细,多边形的边数越多,多边形的面积就和圆面积的差别就越小。于是得出圆周率的双边不等式,3.141024<π<3.1427043.141024<π<3.1427043.141024π...

learn process of Hanna 1万+

蒙特卡罗法的投针法模拟试验

突然关注到蒙特卡罗法,觉得挺有意思,在优快云搜了一下相关原理和程序,组织了一下并运行模拟结果,为加深理解此处做一下记录。 直接上程序: clc; clear all; tic; l = 1.32; % 针的长度(任意给的) a = 2.63; % 平行线的宽度(大于针的长度l即可) n = 10000; % 做n次投针试验 m = 0; % 记录针与平行线相交的次数 x = rand(1, n) * a / 2 ; % 在[0, a/2]内服从均匀分布随机产生...

easy_R的博客 868

C++投针法求圆周率

用VC6.0实现,利用投针法原理计算π的值。

布丰投针试验的仿真和误差估计

布丰投针试验试验原理一.试验步骤:二.理论投针概率的计算:计算过程一.计算π\piπ的理论值和误差二.Python代码的实现 试验原理 一.试验步骤: ​ 1.选一个长度为lll的针。再选取一张白纸,上面划分许多平行且相隔为aaa的平行线。(l<al<al<a) ​ 2.随机向纸投nnn次针,其中有mmm次针与平行线相交。 ​ 3.计算投针的概率为p=mnp = \frac{m}{n}p=nm​。 二.理论投针概率的计算: 计算过程 一.计算π\piπ的理论值和误差 ​ 这根长为lll的

赛亚茂的博客 1998

概率论布丰投针实验和C程序模拟

包含文档和理论介绍 用c语言实现普丰投针计算圆周率 包含代码和可执行程序

基于用C编动画程序模仿浦丰抛针求π

浦丰抛针:在1777年出版的《或然性算术实验》一书中提出他的著名的投针问题,蒲丰提出了用实验概率方法计算 π 。这个实验方法的操作很简单:找一根粗细均匀,长度为 d 的细针,并在一张白纸上画满间距为 l 的平行线(方便起见,常取 l = d/2),然后一次又一次地将小针任意投掷在白纸上。这样反复地投多次,数数针与任意平行线相交的次数,于是就可以得到 π 的近似值。因为蒲丰本人证明了针与任意平行线相交的概率为 p = 2l/πd 。利用这一公式,可以用概率方法得到圆周率的近似值。在一次实验中,他选取 l = d/2 ,然后投针2212次,其中针与平行线相交704次,这样求得圆周率的近似值为 2212/704 = 3.142。当实验中投的次数相当多时,就可以得到 π 的更精确的值。 程序用动画图形界面实现,tc2.0 编译

概率论计算圆周率(π)

最近找工作看了许多面经,其中看到了重复出现多次的问题: 使用概率论计算π 因此,查找并推导了如下可两种方法,具体如下: 目录 1.投针法: 1.1实验数据 1.2Python模拟程序 2.圆周法 2.1Python模拟程序 1.投针法: ------引自百度百科:蒲丰投针问题 18世纪,布丰提出以下问题:设我们有一个以平行且等距木纹铺成的地板(如图),现在随意抛一...

地理信息系统、摄影测量与遥感、人工智能 1万+

SpringBoot+Vue+Mysql社区医院信息平台(源码+文档)

SpringBoot+Vue+Mysql学生宿舍信息管理系统 WEB端软件项目(源码+文档) 项目包含:①完整源码(后端+管理后台+用户前台);②数据库脚本文件;③万字论文文档;④开题报告;⑤答辩PPT;⑥项目运行视频教程。 项目架构: B/S 架构、MVC 分层设计 技术栈: Java、MySQL、SpringBoot、MyBatis-Plus、Token 权限校验、管理后台 Vue+ElementUI+ECharts、用户前台 Layui+jQuery、Maven 构建。 一、角色设计 学生用户: 注册登录、浏览宿舍信息、查询宿舍安排、在线报修、缴费查询、失物招领、桶装水预订、评论交流、收藏等。 商家用户: 注册登录、桶装水品牌与商品信息维护、预订订单查看与处理。 维修人员: 注册登录、查看待处理报修、接单维修、填写报修处理结果与进度反馈。 管理员: 学生管理、班级管理、宿舍信息管理、宿舍安排管理、报修处理管理、缴费信息管理、卫生检查与文明宿舍管理、失物招领管理、桶装水与商家管理、维修人员管理、公告资讯与轮播图管理等。 二、前台功能模块(学生端) 1. 首页展示:轮播图、宿舍公告、最新动态推荐、常用服务快速入口 2. 宿舍信息模块:宿舍列表、楼栋与房间条件筛选、宿舍详情查看、我的宿舍安排查询 3. 在线报修模块:在线提交宿舍设施报修申请、上传故障描述、查看报修进度与维修处理结果 4. 缴费模块:水电等缴费记录查询、缴费状态查看 5. 卫生检查与文明宿舍:宿舍卫生检查结果公示、文明宿舍展示 6. 失物招领模块:失物信息发布、招领信息发布、详情查看、评论互动 7. 桶装水预订:桶装水品牌与商品浏览、在线预订、我的预订记录查询 8. 假期留宿:假期留校申请提交、申请记录查询 9. 评论与收藏:信息评论、查看他人评论、评论回复互动、收藏感兴趣的内容 10. 个人中心...

蒲丰投针实验原理_神奇的圆周率——布丰投针实验

通过投针实验居然能够计算圆周率,这是怎么办到的呢?一起来看看吧。布丰实验布丰何许人?百度一下即可。重点是他设计了一个实验,通过将一定长度的针投到画有一组等距离平行线的平面上,观察针是否与某一条直线相交,研究针与某一条直线相交的概率。发现这个概率与圆周率有关。概率是多大?不难想象,这线段与某一直线相交的概率与线段的长度以及平行线间的距离有关。线段越长,相交的可能性越大。当然,线段的长度是相对于平行线...

weixin_42322512的博客 1万+

YOLOv8作物病害检测实战源码

这是一套基于YOLOv8n的农田病虫害目标检测系统,对叶片照片做目标检测,识别健康叶片、褐斑病、白粉病、锈病四类,并给出对应防治建议。全流程纯CPU可跑,配套交付完整Python源码、9章实战教程(md/html/pdf三种格式)、100张自造样本及YOLO标签、训练曲线与混淆矩阵截图、Tkinter界面和答辩PPT。 系统围绕五项功能展开:同一套推理逻辑覆盖图像、视频、摄像头三种来源;图形界面选文件即检测,画面叠彩色框标注病名与置信度,右侧面板同步给出症状与防治措施;检测记录自动写入CSV,统计页一键生成四类病害占比饼图;训练结束自动产出损失与精度曲线;内置防治建议文案库,检测命中即回填面板。 选型用YOLOv8n nano档,参数量约320万、权重约6.2MB,CPU单帧几十毫秒,小样本训练5到8分钟完成。数据由data_gen.py程序化绘制100张叶片图,固定随机种子,重跑分布一致,不依赖公开数据集。依赖全部锁版本,教程第7章整理了19条真实报错及排查方法,第8章给出换模型档、换PlantVillage数据集的迁移路径。 适合做计算机视觉方向课程设计或毕业设计的学生,也适合智慧农业方向想了解检测模型如何落进业务面板的学习者。不需要GPU,不需要系统学过目标检测,教程第3章会按需补齐原理。 使用时先pip install -r requirements.txt装好依赖,download_data.py下载预训练权重,data_gen.py生成样本后train.py训练,完成后用main.py infer批量检测或main.py gui启动界面。

数据挖掘实战:决策树 + 聚类 + 关联规则,零 Key 离线可跑(Python 源码)

数据挖掘实战包。用 Python 标准库实现 CART 风格决策树、K-Means 聚类与 Apriori 关联规则,在虚构「星河便利店」会员表和购物篮上跑通分类、分群与购物篮分析,并给出准确率、轮廓系数、支持度/置信度/提升度。零第三方依赖、零 API Key 即可离线跑通。含 4 个样例、离线冒烟、中文 README(含「使用方法」)。均为作者原创可运行源码。MIT。作者 blog.youkuaiyun.com/mtl1994

蒙特卡洛--抛洒点求圆周率

设计一个1X1的坐标矩形框,和一个1/4圆。 Syuan = pi/4 Syuan/Szong = pi/4 向这个区域抛洒点,当数量达到一定时,就可以得到扇形面积和矩形面积 那么扇形面积比矩形面积 = pi/4 就可以求出pi

yxswhy的博客 788

产业园区如何高效对接企业技术需求与高校科研成果?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

python计算圆周率代码_用算法实现计算圆周率-几何概型估算圆周率Python编程小程序...

我在http://tieba.baidu.com/p/5953188922?traceid=看见了一个用 编程计算圆周率的方法 具体详细可以打开链接发现原作者:百度用户阿泰 C531T因为编程语言的条件限制 故计算出的圆周率精确度有限 所以我这里教大家尝试用同样的算法用Python实现:在此之前我们先来了解算法思路:不知道各位是否记得自己做过这样一道数学题目:在上面这个图形中,一个圆内切于一个正方...

weixin_39708854的博客 437

国央企创新负责人如何快速掌握本地科技资源分布与匹配情况?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

国央企创新负责人如何实现科技成果的精准识别与高效筛选?.docx

科易网基于AI模型+行业大数据,在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,推出科技创新领域的AI+工具与数智化解决方案,推动科技创新与产业创新智能化发展。

上一篇: 基于AJAX+PHP实现实时搜索实例
下一篇: 实测!!论如何在OI赛场上提高程序运行速度
Coder.AN
博客等级 码龄9年 8粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值