起一个数的平方根_使用二分法计算一个数的算术平方根
在Python中计算一个数的算术平方根其实很简单,可以使用pow()函数。如计算100的算术平方根:
但是呢,为了学习使用二分法这种思想,我们特意将简单问题稍微复杂化一下~
所谓的二分是指取中间值的意思。以计算100的算术平方根10为例,首先计算机会根据输入信息判断猜测区间,这里可以设置最小值为0,最大值为100。
第一次猜测:guess = (0+100)/2=50。50明显大于目标(10),因此猜大了,此时,计算机会自动修改猜测的最大值为50,最小值仍然为0。
第二次猜测:guess = (0+50)/2=25。还是猜大了,继续修改猜测的最大值为25。
第三次猜测:guess = (0+25)/2=12.5。还是猜大了。
第四次猜测:guess = (0+12.5)/2=6.25。哎?猜小了!因此,修改猜测的最小值为6.25,最大值为12.5。
第五次猜测:guess = (6.25+12.5)/2=9.375。猜小了,继续修改猜测的最小值为9.375,最大值为12.5。
第六次猜测:guess = (9.375+12.5)/2=10.9375,已经相当接近目标(10)了……如此进行下去,直到guess的值为10.
注释:low表示猜测区间最小值,high表示猜测区间最大值,如果要计算x的平方根,一般会将猜测的最大值设为x。因为直接比较guess与根号x的大小不太方便,对应的等价比较为:比较guess的平方与x的大小。由上述描述可以看出,如果猜小了,则会修改猜测区间的最小值(low)为guess,继续采用二分法猜。如果猜大了,则会修改猜测区间的最大值(high)为guess,继续采用二分法猜。
Python代码实现:
注释:while语句中,在比较guess的平方与x的大小关系时需要特别注意,guess是计算出来的,是浮点数,浮点数之间比较大小不能直接用==或!=,具体原因是因为存在不确定尾数,需要引入round()函数。参考我的另一篇文章:
Cara:Python中关于0.1+0.2≠0.3的问题zhuanlan.zhihu.com
执行效果如下:
起一个数的平方根_使用二分法计算一个数的算术平方根相关推荐
- python如何计算成绩平方根_python 使用二分法计算平方根
python 使用二分法计算平方根 from math import sqrt def mysqrt(num,small): assert num>0 assert small>0 low ...
- 用java二分法计算a的n次幂_用二分法计算a的n次幂算法分析
实验目的: 1.复习java编程: 2.掌握二分法的基本原理: 3.掌握使用java程序进行二分法计算a的n次幂. 实验步骤: 1.由用户输入a及n(均为整数): 2.利用二分法完成计算,并将中间结果 ...
- python三个数输出最小值_从键盘输入三个数,输出其中的最大值和最小值。_学小易找答案...
[单选题]关于 Python 程序格式框架的描述,以下选项中错误的是 ( ) [其它]实现multi()函数,参数个数不限,返回所有参数的乘积. [简答题]我和我的 [单选题]与x > y an ...
- python牛顿迭代法求平方根_牛顿迭代法计算平方根(Java,Python实现)
牛顿法的作用是使用迭代的方法来求解函数方程的根.简单地说,牛顿法就是不断求取切线的过程.更多见:iii.run 数学推导 假设c为原数,t为c的根数. $$ t^2 \quad = \quad c$$ ...
- python牛顿迭代法求平方根_牛顿迭代法计算平方根
public static double sqrt(doublex) {if(x<0)return Double.NaN;//not a number double err=1e-15;doub ...
- 用计算机求正有理数算术平方根的步骤,用计算器求算数平方根、用有理数估计算数平方根的大小.ppt...
用计算器求算数平方根.用有理数估计算数平方根的大小.ppt 上传人:jw****88 文档编号:85573818 上传时间:2020-06-11 格式:PPT 页数:20 大小:2.14MB 下载提示 ...
- 利用计算机求出200的算术平方根,6.1用计算机计算算术平方根.ppt
6.1用计算机计算算术平方根 * ------用计算机计算算术平方根 2.判断下列各数有没有算术平方根?如果有,请求出它们的算术平方根. 36 , 0.09 , , 0 , , 2. 活动一复习回顾 ...
- C语言——二分法查找一个数_数组
C语言--二分法查找一个数_数组 问题描述: 针对一个按顺序排列的一维数组,用户输入一个数,如何辨别它是否存在?是数组中的第几位? 编程思想: 采用二分法,以最中间的数和用户输入的数进行比较,逐步缩小 ...
- 用python实现二分法求平方根_二分法求平方根(Python实现)
使用二分法(Bisection Method)求平方根. def sqrtBI(x, epsilon): assert x>0, 'X must be non-nagtive, not ' + ...
最新文章
- 计算机书籍-数据挖掘与预测分析
- Java中比较对象的两个接口Comparable接口和Comparator接口
- 5W+人的公司怎么把总部和分部网络连接起来?
- boost::graph::distributed::hohberg_biconnected_components用法的测试程序
- 024 Android 自定义样式对话框(AlertDialog)
- 转:【Python3网络爬虫开发实战】6.4-分析Ajax爬取今日头条街拍美图
- UVA-11988 悲剧文本-静态链表
- 【HDU - 2516 】取石子游戏 (Fibonacci博弈)
- ApacheCN 2019Q1 总结
- 回归分析beta值的标准_读懂回归分析-SPSS为例(无广告)
- DARPA 想用自动化技术制造出最强的黑客
- scrapy爬虫+echarts数据分析(安居客)
- MATLAB下载+安装教程
- EOS多节点环境部署
- android 设内网固定ip,如何给手机设置一个固定的内网ip
- 局域网助手 LanHelper 简体中文版
- 电脑商城-02-注册
- 查询跟踪多家快递单号,筛选某一时间发货的单号
- 【Python】如何实现列表的升序排列
- Java 调用ffmpeg 实现视频编辑