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中的二叉树查找算法模块使用指南
Jul 04 Python
Python中的pygal安装和绘制直方图代码分享
Dec 08 Python
Python代码实现KNN算法
Dec 20 Python
python实现在pandas.DataFrame添加一行
Apr 04 Python
tensorflow 获取变量&打印权值的实例讲解
Jun 14 Python
在python里协程使用同步锁Lock的实例
Feb 19 Python
Python逐行读取文件中内容的简单方法
Feb 26 Python
python 上下文管理器及自定义原理解析
Nov 19 Python
Python环境使用OpenCV检测人脸实现教程
Oct 19 Python
jupyter notebook指定启动目录的方法
Mar 02 Python
Python中递归以及递归遍历目录详解
Oct 24 Python
Python数组变形的几种实现方法
May 30 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
hadoop中一些常用的命令介绍
2013/06/19 PHP
PHP数组操作简单案例分析
2016/10/15 PHP
thinkphp5.1框架容器与依赖注入实例分析
2019/07/23 PHP
Laravel5.4框架中视图共享数据的方法详解
2019/09/05 PHP
PHP基于ip2long实现IP转换整形
2020/12/11 PHP
ExtJS GTGrid 简单用户管理
2009/07/01 Javascript
jQuery阻止同类型事件小结
2013/04/19 Javascript
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
2013/04/24 Javascript
jQuery链使用指南
2015/01/20 Javascript
原生js结合html5制作简易的双色子游戏
2015/03/30 Javascript
jQuery+Ajax实现无刷新分页
2015/10/30 Javascript
详解AngularJS中的filter过滤器用法
2016/01/04 Javascript
jQuery解析与处理服务器端返回xml格式数据的方法详解
2016/07/04 Javascript
微信小程序 触控事件详细介绍
2016/10/17 Javascript
浅谈Vue.js应用的四种AJAX请求数据模式
2017/08/30 Javascript
node.js中路由,中间件,ge请求和post请求的参数详解
2017/12/26 Javascript
webpack多入口文件页面打包配置详解
2018/01/09 Javascript
node实现简单的增删改查接口实例代码
2019/08/22 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
[01:01]青春无憾,一战成名——DOTA2全国高校联赛开启
2018/02/25 DOTA
python3使用urllib示例取googletranslate(谷歌翻译)
2014/01/23 Python
Python函数参数类型*、**的区别
2015/04/11 Python
python异步实现定时任务和周期任务的方法
2019/06/29 Python
python3 enum模块的应用实例详解
2019/08/12 Python
Python ATM功能实现代码实例
2020/03/19 Python
TensorFlow固化模型的实现操作
2020/05/26 Python
python 用opencv实现图像修复和图像金字塔
2020/11/27 Python
亚历山大·王官网:Alexander Wang
2017/06/23 全球购物
高一新生军训方案
2014/05/12 职场文书
环境整治工作方案
2014/05/18 职场文书
个人求职自荐信范文
2015/03/06 职场文书
2015年九一八事变纪念日演讲稿
2015/03/19 职场文书
信用卡工资证明范本
2015/06/19 职场文书
文艺部部长竞选稿
2015/11/21 职场文书
祝福语集锦:给百岁老人祝寿贺词
2019/11/19 职场文书
Golang MatrixOne使用介绍和汇编语法
2022/04/19 Golang