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 随机数生成的代码的详细分析
May 15 Python
Python之多线程爬虫抓取网页图片的示例代码
Jan 10 Python
django celery redis使用具体实践
Apr 08 Python
Django Channels 实现点对点实时聊天和消息推送功能
Jul 17 Python
Python使用import导入本地脚本及导入模块的技巧总结
Aug 07 Python
Python实现仿射密码的思路详解
Apr 23 Python
深入了解NumPy 高级索引
Jul 24 Python
matplotlib基础绘图命令之bar的使用方法
Aug 13 Python
python实现粒子群算法
Oct 15 Python
Python 实现RSA加解密文本文件
Dec 30 Python
python基础之停用词过滤详解
Apr 21 Python
Python中itertools库的四个函数介绍
Apr 06 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 Xdebug 调试扩展的安装与使用.
2010/03/13 PHP
php+ajax制作无刷新留言板
2015/10/27 PHP
一个非常实用的php文件上传类
2017/07/04 PHP
PHP+Ajax简单get验证操作示例
2019/03/02 PHP
js传值 判断
2006/10/26 Javascript
JavaScript 放大镜 放大倍率和视窗尺寸
2011/05/09 Javascript
关于textarea提交的内容无法换行的解决办法
2013/04/09 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
parentElement,srcElement的使用小结
2014/01/13 Javascript
jQuery遍历之next()、nextAll()方法使用实例
2014/11/08 Javascript
JS的框架Polymer中的dom-if和is属性使用说明
2015/07/29 Javascript
举例讲解如何判断JavaScript中对象的类型
2016/04/22 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
JS前端笔试题分析
2016/12/19 Javascript
js 原生判断内容区域是否滚动到底部的实例代码
2017/11/15 Javascript
Node使用Sequlize连接Mysql报错:Access denied for user ‘xxx’@‘localhost’
2018/01/03 Javascript
Vue 页面状态保持页面间数据传输的一种方法(推荐)
2018/11/01 Javascript
如何将百度地图包装成Vue的组件的方法步骤
2019/02/12 Javascript
JS判断两个数组或对象是否相同的方法示例
2019/02/28 Javascript
[03:57]《不朽》——2015DOTA2国际邀请赛—中国军团出征主题曲MV
2015/07/15 DOTA
[43:36]Liquid vs Mineski 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
[02:17]快乐加倍!DOTA2食人魔魔法师至宝+迎霜节活动上线
2019/12/22 DOTA
python常见排序算法基础教程
2017/04/13 Python
对pandas的算术运算和数据对齐实例详解
2018/12/22 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
详解Selenium 元素定位和WebDriver常用方法
2020/12/04 Python
HTML5对手机页面长按会粘贴复制禁用的解决方法
2016/07/19 HTML / CSS
通过canvas转换颜色为RGBA格式及性能问题的解决
2019/11/22 HTML / CSS
猎人靴英国官网:Hunter Boots
2017/02/02 全球购物
行政人事岗位职责
2014/03/17 职场文书
2014年音乐教师工作总结
2014/12/03 职场文书
医药公司开票员岗位职责
2015/04/15 职场文书
医院消毒隔离制度
2015/08/05 职场文书
学校就业保障协议书
2019/06/24 职场文书
HTML+CSS实现导航条下拉菜单的示例代码
2021/08/02 HTML / CSS
Python pandas之求和运算和非空值个数统计
2021/08/07 Python