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 字符串操作方法大全
Mar 11 Python
Python计算回文数的方法
Mar 11 Python
Ubuntu 16.04 LTS中源码安装Python 3.6.0的方法教程
Dec 27 Python
在Python中执行系统命令的方法示例详解
Sep 14 Python
Python使用functools实现注解同步方法
Feb 06 Python
python3+PyQt5实现柱状图
Apr 24 Python
树莓派极简安装OpenCv的方法步骤
Oct 10 Python
详解numpy矩阵的创建与数据类型
Oct 18 Python
Python中的四种交换数值的方法解析
Nov 18 Python
Python属性和内建属性实例解析
Jan 14 Python
Django静态资源部署404问题解决方案
May 11 Python
分布式全文检索引擎ElasticSearch原理及使用实例
Nov 14 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
实时抓取YAHOO股票报价的代码
2006/10/09 PHP
php中自定义函数dump查看数组信息类似var_dump
2014/01/27 PHP
yii实现图片上传及缩略图生成的方法
2014/12/04 PHP
php解析url并得到url中的参数及获取url参数的四种方式
2015/10/26 PHP
php实现简单的上传进度条
2015/11/17 PHP
js 事件截取enter按键页面提交事件示例代码
2014/03/04 Javascript
javascript获取checkbox复选框获取选中的选项
2014/08/12 Javascript
javascript比较两个日期相差天数的方法
2015/07/23 Javascript
jQuery实现带滑动条的菜单效果代码
2015/08/26 Javascript
BootStrap框架个人总结(bootstrap框架、导航条、下拉菜单、轮播广告carousel、栅格系统布局、标签页tabs、模态框、菜单定位)
2016/12/01 Javascript
jquery精度计算代码 jquery指定精确小数位
2017/02/06 Javascript
JavaScript数据结构之二叉树的查找算法示例
2017/04/13 Javascript
React中jquery引用的实现方法
2017/09/12 jQuery
详解在express站点中使用ejs模板引擎
2017/09/21 Javascript
JavaScript偏函数与柯里化实例详解
2019/03/27 Javascript
微信小程序版本自动更新的方法
2019/06/14 Javascript
JS实现横向轮播图(中级版)
2020/01/18 Javascript
[05:08]第一届“网鱼杯”DOTA2比赛精彩集锦
2014/09/05 DOTA
[38:27]完美世界DOTA2联赛PWL S2 Forest vs FTD.C 第二场 11.26
2020/11/30 DOTA
Python获取文件ssdeep值的方法
2014/10/05 Python
Python全局变量操作详解
2015/04/14 Python
python多进程并行代码实例
2019/09/30 Python
调用其他python脚本文件里面的类和方法过程解析
2019/11/15 Python
python实现数据清洗(缺失值与异常值处理)
2019/12/02 Python
Java程序员面试题
2013/07/15 面试题
经贸日语专业个人求职信范文
2013/12/28 职场文书
给老师的道歉信
2014/01/11 职场文书
网上卖盒饭创业计划书
2014/01/26 职场文书
小学生作文批改评语
2014/12/25 职场文书
加薪申请报告范本
2015/05/15 职场文书
Nginx反向代理及负载均衡如何实现(基于linux)
2021/03/31 Servers
详解MySQL连接挂死的原因
2021/05/18 MySQL
mysql 索引合并的使用
2021/08/30 MySQL
python opencv将多个图放在一个窗口的实例详解
2022/02/28 Python
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android
《极主夫道》真人电影正式预告 定档6月3日上映
2022/04/05 日漫