Python计算开方、立方、圆周率,精确到小数点后任意位的方法


Posted in Python onJuly 17, 2018

Python计算的位数

在电脑上做了一个实验,看看python能计算到多少位,一下是结果。

x = math.sqrt((3))
print ("%.53f"%(x))
print ("%.63f"%(x))
print ("%.83f"%(x))
1.73205080756887719317660412343684583902359008789062500
1.732050807568877193176604123436845839023590087890625000000000000
1.73205080756887719317660412343684583902359008789062500000000000000000000000000000000
1.73205080756887719317660412343684583902359008789062500000000000000000000000000000000

计算立方根公式

设A = X^3,求X.称为开立方。 开立方有一个标准的公式:

Python计算开方、立方、圆周率,精确到小数点后任意位的方法

例如,A=5,,即求5介于1的3次方至2的3次方之间(1的3次方=1,2的3次方=8)

初始值X0可以取1.1,1.2,1.3,1.4,1.5,1.6,1.7,1.8,1.9,都可以。例如我们取X0 = 1.9按照公式:

第一步:X1=1.9+(5/1.9²-1.9)1/3=1.7;

即5/1.9×1.9=1.3850416,1.3850416-1.9=-0.5149584,-0.5149584×1/3=-0.1716528,1.9+(-0.1716528)=1.7。即取2位数值,,即1.7。

第二步:X2=1.7+(5/1.7²-1.7)1/3=1.71;

即5/1.7×1.7=1.73010,1.73-1.7=0.03,0.03×1/3=0.01,1.7+0.01=1.71。取3位数,比前面多取一位数。

第三步:X3=1.71+(5/1.71²-1.71)1/3=1.709;

第四步:X4=1.709+(5/1.709²-1.709)1/3=1.7099;

这种方法可以自动调节,第一步与第三步取值偏大,但是计算出来以后输出值会自动转小;第二步,第四步输入值偏小,输出值自动转大。即5=1.7099³ 当然初始值X0也可以取1.1,1.2,1.3,。。。1.8,1.9中的任何一个,都是X1 = 1.7 。当然,我们在实际中初始值最好采用中间值,即1.5。 1.5+(5/1.5²-1.5)1/3=1.7。

增加计算步骤,可以得到任意精度的值

计算根号2任意位数

开平方公式

如果用这个公式开平方,只需将3改成2,2改成1。即

Python计算开方、立方、圆周率,精确到小数点后任意位的方法

import sys
n = 2
s = 0
while True:
 for si in range(9,-1,-1):
 nx = n - ((2*s*10+si)*si)
 if nx>=0:
  s = s*10+si
  n = nx*100
  sys.stdout.write(str(si))
  sys.stdout.flush()
  break

计算开5次方公式,精确至任意位数

Python计算开方、立方、圆周率,精确到小数点后任意位的方法

计算圆周率任意位数

因为根据马青公式π/4=4arctg1/5-arctg1/239

又因为arctgX=X-(1/3)X^3+(1/5)X^5-(1/7)X^7+……+[(-1)^(n-1)/((2n-1)]*X^(2n-1))

变形得π/4=(4/5-1/239)-1/3(4/5^3-1/239^3)+1/5(4/5^5-1/239^5)……

所以可以用python语言编写出求圆周率到任意位的程序如下:

n = int(raw_input('请键入想要计算到小数点后的位数n:')) #先键入字符串,再转化为整数

w = n+10 #多计算10位,防止尾数取舍的影响

b = 10**w #算到小数点后w位

x1 = b*4//5 #求含4/5的首项

x2 = b// -239 #求含1/239的首项

he = x1+x2 #求第一大项

n *= 2 #设置下面循环的终点,即共计算n项

for i in xrange(3,n,2): #循环初值=3,末值2n,步长=2

x1 //= -25 #求每个含1/5的项及符号

x2 //= -57121 #求每个含1/239的项及符号

x = (x1+x2) // i #求两项之和

he += x #求总和

pai = he*4 #求出π

pai //= 10**10 #舍掉后十位

print pai #输出圆周率π的值,

以上这篇Python计算开方、立方、圆周率,精确到小数点后任意位的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
用Python的urllib库提交WEB表单
Feb 24 Python
python使用筛选法计算小于给定数字的所有素数
Mar 19 Python
python多线程之事件Event的使用详解
Apr 27 Python
python绘制直线的方法
Jun 30 Python
浅谈Python traceback的优雅处理
Aug 31 Python
python3 实现对图片进行局部切割的方法
Dec 05 Python
解决pycharm中导入自己写的.py函数出错问题
Feb 12 Python
Tensorflow中的图(tf.Graph)和会话(tf.Session)的实现
Apr 22 Python
Python3自定义http/https请求拦截mitmproxy脚本实例
May 11 Python
基于Python爬取京东双十一商品价格曲线
Oct 23 Python
python request 模块详细介绍
Nov 10 Python
深入理解pytorch库的dockerfile
Jun 10 Python
python把数组中的数字每行打印3个并保存在文档中的方法
Jul 17 #Python
python3.x 将byte转成字符串的方法
Jul 17 #Python
Python 字符串转换为整形和浮点类型的方法
Jul 17 #Python
Python操作word常见方法示例【win32com与docx模块】
Jul 17 #Python
python查看列的唯一值方法
Jul 17 #Python
Python使用win32com模块实现数据库表结构自动生成word表格的方法
Jul 17 #Python
python 数字类型和字符串类型的相互转换实例
Jul 17 #Python
You might like
PHP项目开发中最常用的自定义函数整理
2010/12/02 PHP
修改PHP的memory_limit限制的方法分享
2012/02/21 PHP
php使用Imagick生成图片的方法
2015/07/31 PHP
php实现多站点共用session实现单点登录的方法详解
2019/09/18 PHP
laravel Model 执行事务的实现
2019/10/10 PHP
yii2.0框架场景的简单使用示例
2020/01/25 PHP
初学JavaScript第二章
2008/09/30 Javascript
日期 时间js控件
2009/05/07 Javascript
js parentElement和offsetParent之间的区别
2010/03/23 Javascript
ASP.NET jQuery 实例18 通过使用jQuery validation插件校验DropDownList
2012/02/03 Javascript
javascript数组快速打乱重排的方法
2014/01/02 Javascript
jQuery实现的多选框多级联动插件
2014/05/02 Javascript
纯JS代码实现一键分享功能
2016/04/20 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
jQuery插件FusionWidgets实现的Bulb图效果示例【附demo源码下载】
2017/03/23 jQuery
JS解析url查询参数的简单代码
2017/08/06 Javascript
解决Webpack 热部署检测不到文件变化的问题
2018/02/22 Javascript
js实现网页同时进行多个倒计时功能
2019/02/25 Javascript
用VueJS写一个Chrome浏览器插件的实现方法
2019/02/27 Javascript
swiper自定义分页器的样式
2020/09/14 Javascript
微信小程序实现购物车小功能
2020/12/30 Javascript
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
python实现带声音的摩斯码翻译实现方法
2015/05/20 Python
Python3的urllib.parse常用函数小结(urlencode,quote,quote_plus,unquote,unquote_plus等)
2016/09/18 Python
解决pandas read_csv 读取中文列标题文件报错的问题
2018/06/15 Python
python对列进行平移变换的方法(shift)
2019/01/10 Python
python正则-re的用法详解
2019/07/28 Python
python3 map函数和filter函数详解
2019/08/26 Python
The North Face北面英国官网:美国著名户外品牌
2017/12/13 全球购物
美国最佳选择产品网站:Best Choice Products
2019/05/27 全球购物
数据库设计的包括哪两种,请分别进行说明
2016/07/15 面试题
多媒体编辑专业毕业生推荐信
2013/11/05 职场文书
安全资金保障制度
2014/01/23 职场文书
工程师岗位职责规定
2014/02/26 职场文书
单方离婚协议书范本2014
2014/10/28 职场文书
费城故事观后感
2015/06/10 职场文书