有进度条圆周率Π计算

 

圆周率π的计算

一、圆周率π的简介

  • 圆周率的介绍

  圆周率用希腊字母 π(读作pài)表示,是一个常数(约等于3.141592654),是代表圆周长和直径的比值。它是一个即无限不循环小数,在日常生活中,通常都用3.14代表圆周率去进行近似计算。

  • 圆周率的求解历程

  1965年,英国数学家约翰·沃利斯(John Wallis)出版了一本数学专著,其中他推导出一个公式,发现圆周率等于无穷个分数相乘的积。

  2015年,罗切斯特大学的科学家们在氢原子能级的量子力学计算中发现了圆周率相同的公式。

  2019年3月14日,谷歌宣布圆周率现已到小数点后31.4万亿位。

 

  此处用一个自我感觉‘良好’的公式进行求解,说良好是因为计算结果相对准确,但计算过程用时较长,一起来学习吧~~~

 

 

二、圆周率的近似计算

   1. 计算公式 

 

  2. 方法讲解

  所用公式等式右边分子都为1,分母为递增数列,从第一项开始,奇数项符号为正,偶数项符号为负。等式右边的分母越大,越小,圆周率π计算的值越精确;换个角度讲,就是等式右边的项越多,计算的值越精确。

 

  3. 代码实现(python)

 

 1 from math import fabs           #导入数学模块2 from time import perf_counter   #导入时间模块3 4 def Bar(i):         #动态文本条5     N = pow(10,level)6     a = int((i/N)*50)7     b = 50 - a8     Y , N = '*' * a , '.' * b9     print("\r计算中:{:3.0f}% [{}->{}] {:.2f}s"
10           .format(2*a,Y,N,perf_counter()),end='')
11     
12 level = eval(input('计算Pi精确到小数点后几位数:'))
13 print('\n{:=^70}'.format('计算开始'))
14 a,b,pi,tmp = 1,1,0,1
15 i = 0
16 '''
17 a 分子  |  b 分母  |  pi 圆周率
18 tmp 存储a/b的值    |  i  执行进度
19 '''
20 perf_counter()      #开始计时
21 while (fabs(tmp) >= pow(10,-level)): #计算Pi
22     pi += tmp
23     b += 2
24     a = -a
25     tmp = a/b
26     i += 2
27     Bar(i)          #调用函数,实时显示计算进度
28 
29 print('\n{:=^70}'.format('计算完成'))
30 print('\nPi的计算值为:{}'.format(round(pi*4,level))) #输出计算结果
复制代码

 

  4. 图片示例

 

 

 

 

   由上面3张图片可知,精确到小数点后1位只要6.68秒,精确到小数点后2位也需要45.44秒。这种方法固然好,但计算起来仍需要很长一段时间。

《圆周率π》是个奇妙而美丽的存在,它是个无限不循环小数,就像是一种缺陷美,只要你有发现美的眼睛!

转载于:https://www.cnblogs.com/Exin/p/10554703.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449546.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【云周刊】第205期:阿里云重磅开源实时计算平台Blink,挑战计算领域的“珠峰”...

本期头条 阿里云重磅开源实时计算平台Blink,挑战计算领域的“珠峰” 信息爆炸的时代,智能推荐已经被应用到各类互联网产品中,但为千万级甚至亿级规模的用户实时做精准的推荐难度极高。这一难题已经被阿里攻克了:双11的第1分钟&…

Mysql 取用逗号分隔的字串的子串的方法:SUBSTRING_INDEX

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 有一张部门表:appbricks_department ,有 id 字段和 rank_tree 字段。 rank_tree:记录的是当前部门的…

UCloud首尔机房整体热迁移是这样炼成的

2019独角兽企业重金招聘Python工程师标准>>> 2018年下半年,UCloud首尔数据中心因外部原因无法继续使用,需要在很短时间内将机房全部迁走。为了不影响用户现网业务,我们放弃了离线迁移方案,选择了非常有挑战的机房整体热…

解决浏览器 Provisional headers are shown 无法向后台发送请求问题

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 我的情况和下面情况一样,有一个断点。 今天调试项目BUG,页面的一个按钮点击后页面无反应,去后台找对…

台湾邮政历史常设展重新开幕

1月29日,重新开幕的台湾邮政历史常设展增加了与观众的对话和互动,希望吸引不同年龄层观众。中新社记者 孔任远 摄 1月29日,重新开幕的台湾邮政历史常设展增加了与观众的对话和互动,希望吸引不同年龄层观众。中新社记者 孔任远 摄 …

微信屏蔽百度红包活动页面,谁在焦虑?

1月29日消息,百度与中央电视台合作的百度红包链接分享页面被微信屏蔽,打开相关页面显示:网页包含诱导分享、关注等诱导行为内容,被多人投诉,为维护绿色上网环境,已经停止访问该网页。 雷锋网了解到&#x…

Visual C++利用Intel C++ 编译器提升多核性能与多媒体指令支持获取更高的程序效率与缩小程序体积

Intel c编译器有下列优点,建议VC项目开发采用intel c编译器取代VS自带c编译器: 与 Microsoft Visual C 相兼容,可以嵌入 Microsoft Visual Studio 开发环境。 支持最新的多核处理器,并提供安全功能,可以通过执行堆栈…

Redis数据结构之简单动态字符串SDS

Redis的底层数据结构非常多,其中包括SDS、ZipList、SkipList、LinkedList、HashTable、Intset等。如果你对Redis的理解还只停留在get、set的水平的话,是远远不足以应对面试提问的。本文简单介绍了Redis底层最重要的数据结构 - 简单动态字符串&#xff08…

windows 小技巧

2019独角兽企业重金招聘Python工程师标准>>> 桌面图标显示不全、图标呈现白色方块 ie4uinit -show 关闭占用指定端口的进程 获取进程: netstat -ano | findstr 端口号关闭进程:taskkill -f -pid 进程号文件被占用 打开任务管理器,切换到 性能…

谈判学:三招了解对方底线

导读:谈判者都希望能了解对方的底线,最直接的一招就是将对手变成“朋友”,只是这种“内奸法”毕竟不是常规之法。大多数情况下,谈判双方也不可能像《无间道》一样在对方阵营安放卧底,但是我们完全可以通过一些办法来揣…

SQL SERVER 2012 AlwaysOn - 维护篇 03

搭建 AlwaysOn 是件非常繁琐的工作,需要从两方面考虑,操作系统层面和数据库层面,AlwaysOn 非常依赖于操作系统,域控,群集,节点等概念; DBA 不但要熟悉数据库也要熟悉操作系统的一些概念&#xf…

区块链BAAS平台:公共或私人区块链编程以用于各种用途

2019独角兽企业重金招聘Python工程师标准>>> 人们可以为公共或私人区块链编程以用于各种用途。理论上,我认为牺牲权力下放的方面可以解决区块链技术背后的许多当前问题。区块链仍然可以包容,而不是分散。这如何解决当前的一些问题&#xff1f…

易用性问题回复

针对淘宝网为例,以一次完整的购物流程为背景,我们分析了在淘宝网中的一些易用性的体现,主要场景如下图所示: 在本场景中,新用户下载淘宝app时,第一次打开应用,淘宝app会出现新手指引,教会用户如…

eBay是如何进行大数据集元数据发现的

很多大数据系统每天都会收集数PB的数据。这类系统通常主要用于查询给定时间范围内的原始数据记录,并使用了多个数据过滤器。但是,要发现或识别存在于这些大型数据集中的唯一属性可能很困难。 在大型数据集上执行运行时聚合(例如应用程序在特定…

职业发展 先“立功”还是先“安内”?

导读:职业生涯更上一层楼,章良踌躇满志,想在短期内建功立业,奠定江湖地位。但他清楚,自己运筹中的分公司服务升级计划,对公司整体和自己的职业生涯都非常有利,却将不可避免地转移老将掌握的部分…

kong入门实战

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 安装kong-database docker run -d --name kong-database \-p 5432:5432 \-e "POSTGRES_USERkong" \-e "POSTGRES_DBkong&…

PAT A1048

示例思想中提到了二分以及two point概念,这个需要后面进行总结;这个示例也给出了一个新的思路。对于两个数字和m,查找两个加数,可以进行i和m-i的枚举,通过遍历数组查看两个加数是否存在,来进行遍历&#xf…

CentOS 7 防火墙操作

导语 今天说下防火墙的操作。CentOS 6 的防火墙是 iptables,CentOS 7 默认的是 firewall,以前的操作不再适用。 查看、开启 服务器刚刚重启完毕,先来看下防火墙的状态,输入 systemctl status firewalld 进行查看 这里是关闭的&…

[python作业AI毕业设计博客]比Selenium IDE更好用的录制工具: Katalon Recorder

Selenium IDE(集成开发环境 Integrated Development Environment)是用于构建测试脚本的原型工具。 它是一个Firefox插件,提供了易于使用的界面,用于开发自动化测试。 但是最新的Selenium IDE总是弹出一系列如下的对话框,不能直接录制&#xf…

价值投资/指标选股(akshare)

利用akshare的数据源,可以获取所有的股票数据以及公开的财务数据,可以进行条件筛选,获取满足条件的股票。 这套模板可以用于价值投资,指标选股。选股周期为日线级别。然后结果可以邮箱发送。 import time import akshare as ak #…