计算机的核心知识——算法
下面通过解平方根算法来介绍算法:
第一种思路
输入:一个任意实数c;
输出:c的算术平方根g。
(1)从0到c的区域里选一个整数g’,满足g’^2<c且(g’+1)>c;
(2)如果g’^2-c无限接近于0,g’即为所求;
(3)否则g’以步长h增加:g’=g’+h,其中,h为设定精度(可0.0001)的步长对g’进行调整。

实际程序:

def square_root_1():#定义一个函数      c=10i=0g=0for j in range(0,c+1):if(j*j>c and g==0):g=j-1while(abs(g*g-c)>0.0001):g+=0.00001i=i+1print("%d:g=%.5f"%(i,g))
square_root_1()#函数以外,执行下面语句

第二种思路:
输入:一个实数c;
输出:c的算术平方根g。
(1)令min=0,max=c;
(2)令g’=(min+max)/2;
(3)如果g’^2-c,足够接近于0,则g’为所求;
(4)否则,如果g’^2<c,min=g’,否则max=g’;
(5)重复步骤二,直到满足条件,输出g’,终止程序。

def square_root_2()i=0c=10m_max=cm_min=0g=(m_min+m_max)/2while(abs(g*g-c)>0.00000000001):if(g*g<c):m_min=gelse:m_max=gg=(m_min+m_max)/2i=i+1print("%d:%.13f"%(i,g))
square_root_2()

第三种思路:
(1)先设g=c/2;
(2)如果g^2-c足够接近于0,g为所求;
(3)否则,g=(g+c/g)/2;
(4)重复步骤(2)。
这里讲一下步骤(3):牛顿迭代法求平方根

如图所示,设一个函数f(x)=x^2-c,我们要求的平方根也就转化为了求该方程的解,及点x*。当x=Xn时,过点f(x)做一条切线,与x轴相交于一点,这个点为Xn+1,从图中可以看出Xn+1比Xn更接近于x*。
如图可知切线斜率为f’(Xn)=2Xn,所以其切线方程为y=f(Xn)+f’(Xn)(x-Xn),与x轴交于Xn+1所以0=f(Xn)+f’(Xn)(Xn+1-Xn),因为f(Xn)=Xn^2-c,f’(Xn)=2Xn,代入后计算,可得Xn+1=(Xn+c/Xn)/2。
具体实现程序如下:

def square_root_3():c=10g=c/2i=0while abs(g*g-c)>0.00000000001:g=(g+c/g)/2i=i+1print("%d:%.13f"%(i,g))
square_root_3()

这种办法明显简单且运行更快
运行结果:

1:3.5000000000000
2:3.1785714285714
3:3.1623194221509
4:3.1622776604441
5:3.1622776601684

通过上述三个例子我们可以知道同一个问题有不同的解决办法,而不同的方法在解题的效率上也大不相同。因此作为一名计算机专业的学生我们要学习的重点便是设计,针对一个问题去设计最高效的解决方法。这为我们以后学习指明了方向!

新手小白学Python.2相关推荐

  1. 32岁学python有前途吗_新手小白学Python有前途吗

    很多同学在选择学习python之初,可能都有这样的疑惑:学Python有前途吗?对于新兴的事物,人们慢慢接受是需要一个过程的,那究竟学python有没有前途呢?今天北大青鸟小编就来给大家指导一下迷津. ...

  2. 女生学python好就业吗-新手小白学Python有前途吗

    很多同学在选择学习python之初,可能都有这样的疑惑:学Python有前途吗?对于新兴的事物,人们慢慢接受是需要一个过程的,那究竟学python有没有前途呢?今天北大青鸟小编就来给大家指导一下迷津. ...

  3. mac学python_新手小白学Python必备编程利器Pycharm快捷键大全(Win+Mac)

    1.编辑 Ctrl + Space 基本的代码完成(类.方法.属性) Ctrl + Alt + Space 快速导入任意类 Ctrl + Shift + Enter 语句完成 Ctrl + P 参数信 ...

  4. mac里python注释的快捷键_新手小白学Python必备编程利器Pycharm快捷键大全(Win+Mac)...

    1.编辑 Ctrl + Space 基本的代码完成(类.方法.属性) Ctrl + Alt + Space 快速导入任意类 Ctrl + Shift + Enter 语句完成 Ctrl + P 参数信 ...

  5. 从小白到精通python要多久-零基础如何学Python?小白学Python需要多久?

    目前市场上对于Python开发人才的需求与日递增,所以很多人都会选择去学Python.那如果是零基础又该如何学Python呢?小白学Python需要多久呢?下面,小编就与大家来看一下! 零基础的新手应 ...

  6. 编程小白学python知乎周刊_在知乎上学 Python - 入门篇

    写在前面 本文对知乎上关于Python入门方面的问答.文章.专栏做了一定的收集和整理,希望对各位Python学习者能有帮助,至少可以节省大家一点时间. 这一篇主要针对的是零基础或初学Python,包括 ...

  7. 零基础学python要多久-零基础如何学Python?小白学Python需要多久?

    目前市场上对于Python开发人才的需求与日递增,所以很多人都会选择去学Python.那如果是零基础又该如何学Python呢?小白学Python需要多久呢?下面,小编就与大家来看一下! 零基础的新手应 ...

  8. 小白学python买什么书-书单狗 篇一:小白学Python,到底要看多少书?

    书单狗 篇一:小白学Python,到底要看多少书? 2020-07-06 10:52:23 130点赞 1939收藏 76评论 比起Linux,Python的学习资料真的是浩如烟海,即使对于小白来讲, ...

  9. python 使用socks 爬虫_小白学 Python 爬虫(17):Requests 基础使用

    人生苦短,我用 Python 前文传送门: 小白学 Python 爬虫(1):开篇 小白学 Python 爬虫(2):前置准备(一)基本类库的安装 小白学 Python 爬虫(3):前置准备(二)Li ...

最新文章

  1. 解决Oracle启动失败
  2. 【数据挖掘】高斯混合模型 ( 与 K-Means 每个步骤对比 | 初始参数设置 | 计算概率 | 计算平均值参数 | 计算方差参数 | 计算高斯分布概率参数 | 算法终止条件 )
  3. 图像检索:图像拷贝检索PHash改进方案
  4. gcc编译器命令使用详解
  5. java 实现压缩单个文件
  6. apollo java客户端_携程配置中心Apollo的Java客户端API的使用
  7. 打印狗的健康值Java_嵌入式狗的JAVA之路 HTML 补课
  8. iOS基础 - 控制器
  9. 软件测试英语笔试,软件测试英文面试笔试题
  10. win10双网卡冗余的几种方法
  11. 概率论与数理统计浙大第五版 第四章 部分习题
  12. Windows下卸载pip的方法
  13. EKF_SoC:基于MATLAB/Similink的扩展卡尔曼滤波器EKF的锂电池SoC计算仿真模型
  14. Java实现泛型解析工具类-GenericsUtils
  15. SpringSecurity(二): @Secured、@PreAuthorize、@PostAuthorize、@PostFilter、@PreFilter注解说明
  16. Code Sign error: Provisioning profile '6805769A-5085-4BE7-B9D1-2859CD2CBE9E' can't be found
  17. 1.一条SQL语句如何执行
  18. dell笔记本指示灯闪烁_DELL笔记本电脑指示灯在电脑关闭后仍然闪烁是什么原因?...
  19. kettle与MySQL数据库建立连接教程
  20. 逍遥B2C商城源码(PC H5)v1.1.3

热门文章

  1. 打开浏览器,显示网页可能暂时无法连接,或者它已永久性的移动到了新地址
  2. php 当前时间转换成农历,php如何实现公、农历日期的想互转换的实例
  3. 索尼录音笔power和hold_以下几款索尼录音笔哪一个的音质能更好些?
  4. 跨境电商遭遇TRO,因知识产权侵权而被冻结账户,卖家15问
  5. 小程序的“开源”之战打响:从“超级App”到“生态经济体”
  6. R语言ggplot2画一幅漂亮的哑铃图
  7. mysql trim函数
  8. 用PS快速简单抠出火焰
  9. python软件开发电子产品测试方向_基于Python语言的自动测试系统通用软件平台实现...
  10. 有两个以上的USB设备,他们的Vendor ID和Product ID都一样,如何指定对应的usb插口和/dev/ttyUSB的序号?