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去除文件中空格、Tab及回车的方法
Apr 12 Python
一份python入门应该看的学习资料
Apr 11 Python
python 去除txt文本中的空格、数字、特定字母等方法
Jul 24 Python
python tornado微信开发入门代码
Aug 24 Python
Python实现的插入排序,冒泡排序,快速排序,选择排序算法示例
May 04 Python
Python OpenCV之图片缩放的实现(cv2.resize)
Jun 28 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
Aug 20 Python
Django自定义模板过滤器和标签的实现方法
Aug 21 Python
windows环境中利用celery实现简单任务队列过程解析
Nov 29 Python
Python定时从Mysql提取数据存入Redis的实现
May 03 Python
python爬虫看看虎牙女主播中谁最“顶”步骤详解
Dec 01 Python
python+selenium+chrome实现淘宝购物车秒杀自动结算
Jan 07 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开发留言板的CRUD(增,删,改,查)操作
2012/04/19 PHP
Windows下安装PHP单元测试环境PHPUnit图文教程
2014/10/24 PHP
UPUPW 更新 64 位 Apache 系列 PHP 7.0 正式版
2015/12/08 PHP
jQuery Mobile的loading对话框显示/隐藏方法分享
2013/11/26 Javascript
Script标签与访问HTML页面详解
2014/01/10 Javascript
基于jquery实现全屏滚动效果
2015/11/26 Javascript
js运动事件函数详解
2016/10/21 Javascript
SelecT下拉框选中和取值的解决方法
2016/11/22 Javascript
bootstrap table实现单击单元格可编辑功能
2017/03/28 Javascript
手机端转换rem适应
2017/04/01 Javascript
AngularJS实现自定义指令与控制器数据交互的方法示例
2017/06/19 Javascript
Nodejs 和Session 原理及实战技巧小结
2017/08/25 NodeJs
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
基于nodejs实现微信支付功能
2017/12/20 NodeJs
使用javascript函数编写简单银行取钱存钱流程
2018/05/26 Javascript
JavaScript设计模式之观察者模式(发布订阅模式)原理与实现方法示例
2018/07/27 Javascript
angular 表单验证器验证的同时限制输入的实现
2019/04/11 Javascript
微信小程序 拍照或从相册选取图片上传代码实例
2019/08/28 Javascript
[06:07]刀塔密之二:攻之吾命受之吾幸
2014/07/03 DOTA
[44:21]Ti4 循环赛第四日 附加赛NEWBEE vs LGD
2014/07/13 DOTA
[43:41]OG vs Newbee 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
python笔记(1) 关于我们应不应该继续学习python
2012/10/24 Python
MySQL中表的复制以及大型数据表的备份教程
2015/11/25 Python
python奇偶行分开存储实现代码
2018/03/19 Python
python 获取list特定元素下标的实例讲解
2018/04/09 Python
Python3基于sax解析xml操作示例
2018/05/22 Python
Python3.0中普通方法、类方法和静态方法的比较
2019/05/03 Python
Python 中Django验证码功能的实现代码
2019/06/20 Python
pandas实现导出数据的四种方式
2020/12/13 Python
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
HTML5中语义化 b 和 i 标签
2008/10/17 HTML / CSS
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
英国现代、当代和设计师家具店:Furntastic
2020/07/18 全球购物
五年级英语教学反思
2014/01/31 职场文书
工地例会施工汇报材料
2014/08/22 职场文书
Django模型层实现多表关系创建和多表操作
2021/07/21 Python