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 相关文章推荐
Linux下为不同版本python安装第三方库
Aug 31 Python
利用pyinstaller或virtualenv将python程序打包详解
Mar 22 Python
遗传算法之Python实现代码
Oct 10 Python
解决安装pycharm后不能执行python脚本的问题
Jan 19 Python
Python实现的对一个数进行因式分解操作示例
Jun 27 Python
python实现本地批量ping多个IP的方法示例
Aug 07 Python
python实现简易学生信息管理系统
Apr 05 Python
python 创建一维的0向量实例
Dec 02 Python
Python通过两个dataframe用for循环求笛卡尔积
Apr 29 Python
python_matplotlib改变横坐标和纵坐标上的刻度(ticks)方式
May 16 Python
PyCharm+PyQt5+QtDesigner配置详解
Aug 12 Python
解决pycharm修改代码后第一次运行不生效的问题
Feb 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
中国的第一台收音机
2021/03/01 无线电
开发大型PHP项目的方法
2006/10/09 PHP
php中的数组操作函数整理
2008/08/18 PHP
php数组函数序列 之array_count_values() 统计数组中所有值出现的次数函数
2011/10/29 PHP
PHP实现多进程并行操作的详解(可做守护进程)
2013/06/18 PHP
js动态添加事件并可传参数示例代码
2013/10/21 Javascript
JavaScript 实现鼠标拖动元素实例代码
2014/02/24 Javascript
javascript使用window.open提示“已经计划系统关机”的原因
2014/08/15 Javascript
jquery获取复选框checkbox的值实现方法
2016/05/30 Javascript
jquery实现折叠菜单效果【推荐】
2017/03/08 Javascript
jQuery实现table中两列CheckBox只能选中一个的示例
2017/09/22 jQuery
JavaScript时间戳与时间日期间相互转换
2017/12/11 Javascript
js replace 全局替换的操作方法
2018/06/12 Javascript
vue首次赋值不触发watch的解决方法
2018/09/11 Javascript
详解vue 命名视图
2019/08/14 Javascript
node.js使用fs读取文件出错的解决方案
2019/10/23 Javascript
JS数组的常用10种方法详解
2020/05/08 Javascript
JS倒计时两种实现方式代码实例
2020/07/27 Javascript
利用node.js开发cli的完整步骤
2020/12/29 Javascript
[05:10]2014DOTA2国际邀请赛 通往胜利之匙赛场探秘之旅
2014/07/18 DOTA
Python fileinput模块使用介绍
2014/11/30 Python
详解Python中的from..import绝对导入语句
2016/06/21 Python
Python 迭代器与生成器实例详解
2017/05/18 Python
TensorFlow实现卷积神经网络
2018/05/24 Python
django 多数据库配置教程
2018/05/30 Python
Python3.4 tkinter,PIL图片转换
2018/06/21 Python
Python面向对象之静态属性、类方法与静态方法分析
2018/08/24 Python
Python类的继承、多态及获取对象信息操作详解
2019/02/28 Python
python中时间转换datetime和pd.to_datetime详析
2019/08/11 Python
使用TensorFlow-Slim进行图像分类的实现
2019/12/31 Python
通过实例解析Python return运行原理
2020/03/04 Python
金山毒霸系列的笔试题
2013/04/13 面试题
小学语文国培感言
2014/03/04 职场文书
大宝sod蜜广告词
2014/03/21 职场文书
岳庙导游词
2015/02/04 职场文书
2015年材料员工作总结
2015/04/30 职场文书