题目:

用Python求一个数的平方根.

At each iteration (loop) of the algorithm,the approximation x is replaced by the average of x and s divided by x.Written as an assignment statement,it looks like this:

x = (x + s/x)/2.0.There are various criteria for deciding when to stop improving the answer of a square root algorithm.In your implementation,I want you keep looping until the square of x is very close to the value of s.In other words,you want to reduce the error of your approximation x until it is acceptably small.You can measure the relative error by comparing the absolute difference of x squared and s.This is written mathematically as:

error = | x * x - s |.Use the math.fabs() function to compute absolute value.

So keep looping and calculating better and better values for x until the error is less than some small constant.For

your implementation of heron(s),stop when error < 0.0000001 which is a small discrepancy.Add a print

statement inside your algorithm loop which prints out both x and x*x at each step so you can see how fast it converges to a good answer.It is very interesting to watch it work.Try different starting guess values for x and see if it

makes any difference to the number of loops required (always use a positive guess value)

解答:

下面代码定义一个函数heron(s)用迭代的方法取得平方根,其中x=s/2可以使用x=s/3,s/5之类的多个值实验一下,看分别需要多少步.

以s=500为例,

x=s时需要9步

x=s/2时需要8步

x=s/3时需要7步

x=s/5时需要5步

'''

Created on 2011-10-26

@author:legendxx

'''

import math

def heron(s):

x=s/2

count=0

sqr=x*x

while math.fabs(sqr - s)>=0.0000001:

count+=1

x = (x + s/x)/2.0

sqr=x*x

print count,":",x,sqr

print count,"steps needed"

if __name__ == '__main__':

s=float(raw_input("input a number"))

heron(s)

python编程求一个数的平方根_用Python求一个数的平方根.相关推荐

  1. python编程基础的阅读心得体会_学习Python的一些心得体会(熊逸飞)

    PART 2 第一章作者没有抛出过多内容,只是简单介绍了Python作为编程语言的一些比较优势,然后介绍它的历史和创始人的故事.从90年首次发布到现在经历了十几次优化才有了如今我们使用的Python, ...

  2. python编程从入门到精通实践_《Python编程:从入门到实践》总结_Day01

    前言 是在原有文章的基础上直接扩充更新还是将其作为单独的系列文章呢?思虑再三,还是决定把接下来的Day01-Day05的总结独立出来.此系列是关于<Python编程:从入门到实践>的总结, ...

  3. 乐学python编程做个游戏很简单_乐学Python编程-做个游戏很简单

    Python简单易学又功能强大,而且免费开源,在国内外的很多公司得到了广泛的应用.在科学计算.游戏.图像.人工智能.机器人.教育教学和航天飞机控制等很多领域,Python也是非常重要的编程工具. 本书 ...

  4. python编程的基本方法有哪些_学习Python编程的11个入门技巧

    我们非常激动,您决定开始学习Python的旅程!我们从读者那里收到的最常见问题之一是"学习Python的最佳方法是什么?" 我相信学习任何编程语言的第一步就是要确保您了解如何学习. ...

  5. 手机python编程文件如何转文档_(转)Python之文件读写

    原文:https://www.cnblogs.com/huilixieqi/p/6494891.html 本节内容: I/O操作概述 文件读写实现原理与操作步骤 文件打开模式 Python文件操作步骤 ...

  6. 如何使用python编程抢京东优惠券 知乎_学好Python爬取京东知乎价值数据

    原标题:学好Python爬取京东知乎价值数据 Python爬虫为什么受欢迎 如果你仔细观察,就不难发现,懂爬虫.学习爬虫的人越来越多,一方面,互联网可以获取的数据越来越多,另一方面,像 Python这 ...

  7. python编程快速上手第四章_《Python编程快速上手——让繁琐的工作自动化》读书笔记 第四章 列表...

    接下来我们来学习 python 中的列表(有点像 Java 中的数组,但并不是数组) "列表"是一个值,它包括多个字构成的序列,术语"列表值"指的是列表本身(它 ...

  8. python编程基础人邮版答案_《Python Web 编程》(人邮出版社)作业答案下载

    全部作业答案: 链接:https://pan.baidu.com/s/1bm73IFUUfkBl0HHhYovehQ  提取码:bus6 01 Django 基础 链接:https://pan.bai ...

  9. python是一种动态语言、这意味着_【python编程的优点是什么?难怪选择python的人越来越多了】- 环球网校...

    [摘要]Python是一种动态解释的.强类型定义语言:编写它时不需要定义变量类型.python判断值的类型的方法是什么,那么python编程的优点是什么?难怪选择python的人越来越多了,所以你知道 ...

  10. python linux系统管理与自动化运维_《Python Linux系统管理与自动化运维》赖明星著【摘要 书评 在线阅读】-苏宁易购图书...

    商品参数 作者: 赖明星著 出版社:机械工业出版社 出版时间:2017-09-01 版次:1 开本:16开 装帧:平装 ISBN:9787111578659 版权提供:机械工业出版社 基本信息 商品名 ...

最新文章

  1. 销售易移动CRM助力制造业转型智能制造
  2. Hadoop学习之MapReduce(一)
  3. Java黑皮书课后题第7章:7.27(相同的数组)如果两个数组list1和list2的内容相同,认为相同(不是完全相同)。编写一个测试程序,提示用户输入两个整数列表,然后显示这两个列表是否相同
  4. [Qt教程] 第23篇 数据库(三)利用QSqlQuery类执行SQL语句
  5. SSAS-MDX#001 - MDX 基本结构
  6. python中迭代器有哪些_Python迭代器:什么是Python中的迭代器以及如何使用它?
  7. 分布式团队_我们说的意思是:我们是一个分布式优先团队
  8. php.ini 只读,disabled by the php.ini setting phar.readonly
  9. 2018年哪项AI研究最紧迫?DeepMind联合创始人说是AI伦理
  10. 清除所有多余的桌面右键菜单
  11. epoll 使用实例
  12. 张宇高等数学强化阶段笔记并标记重点
  13. 网易云音乐服务器code521,网易云音乐scode500是怎么回事 网易云音乐scode502怎么解决...
  14. android horizontalscrollview 动画,Android 用HorizontalScrollView实现滑动标签tabView
  15. linux按行分割文件,按行切割大文件(linux split 命令简版)
  16. C语言字符串分割 trimmed simplified split
  17. iOS APP 运行时防Crash工具XXShield练就
  18. 成功解决h5py\_init_.py
  19. C. Equalize
  20. javaSE探赜索隐之三<类与对象的爱恨情仇上>

热门文章

  1. 苹果计算机符号怎么打开,Mac电脑如何输入command(⌘)、option(⌥)、shift(⇧)等特殊符号...
  2. 1179. 重新格式化部门表
  3. js将数字的金额转换成中文大写金额
  4. 不同网段共享文件服务器,不同网段ip 如何设置局域网共享?
  5. 互联网发展阶段的三阶段是什么?从门户到搜索,到移动互联网
  6. Jira中的Tempo查看component以及issue的工作量汇总
  7. Android开发之指南针
  8. 解决HP ProLiant DL380 G5的安装与启动CentOS7时不能识别raid硬盘问题
  9. AJAX框架眼镜穿搭夏天,30度的夏天,男生应该如何穿搭?看这9种时尚组合!
  10. 计算机运行慢提速小技巧,电脑运行慢?这样设置瞬间提速75%!