最近有人贴出BAT的面试题,题目链接。

就是实现系统的开根号的操作,并且要求一定的误差,其实这类题就是两种方法,二分法牛顿迭代,现在用OC的方法实现如下:

第一:二分法实现

-(double)sqrt_binary:(int)num {double x = sqrt(num);double y = num / 2;double low = 0.0;double up = num;int count = 1;while (fabs(y-x) > 0.000000001) {NSLog(@"--count:%d %f",count,y);count ++;if (y * y > num) {up = y;y = low + (up - low)/2;}else{low = y;y = up -(up-low)/2;}}return y;
}//调用
double result = [self sqrt_binary:5];
NSLog(@"my result:%f--real result:%f",result,sqrt(5));

第二:牛顿迭代

-(double)sqrt_newton:(int)num {
double x = sqrt(num);
double y = num/2;
int count = 1;while (fabs(y-x) > 0.000000001) {NSLog(@"--count:%d %f",count,y);count ++;y = (y + num/y)/2.0;
}return y;
}//调用
double result = [self sqrt_newton:5];
NSLog(@"my result:%f--real result:%f",result,sqrt(5));

参考 :二分法和牛顿迭代法求平方根(Python实现)

转载于:https://www.cnblogs.com/fengtengfei/p/6211570.html

二分法和牛顿迭代实现开根号函数:OC的实现相关推荐

  1. 数值分析——二分法和牛顿迭代(Bisection Method Newton‘s Method)

    本系列整理自博主21年秋季学期本科课程 数值分析I 的编程作业,内容相对基础,参考书: David Kincaid, Ward Cheney - Numerical Analysis Mathemat ...

  2. 题目:任意给定一个浮点数,计算这个浮点数的立方根。(基于二分法和牛顿迭代法)(基于Java实现)

    题目:任意给定一个浮点数,计算这个浮点数的立方根.(基于二分法和牛顿迭代法)(基于Java实现) 首先,来分析一下这道题,其实在leetcode上做了求解根号3的题之后,对于这种求解立方根的题,基本上 ...

  3. 分别用二分法和牛顿迭代法求解方程x3 – 3x – 1 = 0在x = 2附近的实根

    编写程序,分别用二分法和牛顿迭代法求解方程x3 – 3x – 1 = 0在x = 2附近的实根,要求计算精确到小数点后七位数字为止,并将求出的近似结果与理论值2cos20 相比较,二分法的初始迭代区间 ...

  4. 二分法和简单迭代法的优缺点_二分法和牛顿迭代法求解方程的比较.doc

    您所在位置:网站首页 > 海量文档 &nbsp>&nbsp高等教育&nbsp>&nbsp理学 二分法和牛顿迭代法求解方程的比较.doc5页 本文档一共 ...

  5. 二分法和牛顿迭代法求平方根(Python实现)

    求一个数的平方根函数sqrt(int num) ,在大多数语言中都提供实现.那么要求一个数的平方根,是怎么实现的呢? 实际上求平方根的算法方法主要有两种:二分法(binary search)和牛顿迭代 ...

  6. 1、编写程序,分别用二分法和牛顿迭代法求解方程x3 – 3x – 1 = 0在x = 2附近的实根,要求计算精确到小数点后七位数字为止,并将求出的近似结果与理论值2cos20 相比较,二分法的初始迭代

    二分法: #include<stdio.h> #include<math.h> void main() {     double x,x1=1,x2=3,f1,f2,f;    ...

  7. java开根号函数_Java中真的只有值传递么?

    原创: ITwalking 转载于公众号[ 编程大道] (本文非引战或diss,只是说出自己的理解,欢迎摆正心态观看或探讨) 回顾值传递和引用传递 关于Java是值传递还是引用传递,网上有不一样的说法 ...

  8. python用牛顿迭代法求平方根_Python编程实现二分法和牛顿迭代法求平方根代码

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  9. python开根号函数图像,使用matplotlib / python的平方根刻度

    I want to make a plot with square root scale using Python: However, I have no idea how to make it. M ...

  10. 【专题】三分法和牛顿迭代法总结

    下面总结两种迭代方法:三分法和牛顿迭代 1.三分法 二分法作为分治中最常见的方法,适用于单调函数,逼近求解某点的值.但当函数是凸性函数时,二分法就无法适用,这时三分法就可以大显身手. 如下凸函数: 类 ...

最新文章

  1. .substr()在字符串每个字母前面加上一个1
  2. 从专利数量看全球最具创新力的50家公司
  3. 一天一点linux(9):ubuntu下如何搭建LAMP开发环境?
  4. buu Unencode
  5. 华为鸿蒙备胎转正,华为鸿蒙是备胎系统,但已经实现上网随时能转正?
  6. Django 学习资源
  7. python 判断每月最后一天_python获取某年中每个月的第一天和最后一天的两种方法...
  8. (转)功能测试(黑盒测试)常用的策略和方法
  9. 2019天津市二级计算机考试,天津市2019年9月计算机等级考试都有哪些考点可以报名?...
  10. 360与腾讯之争——顾客有可能成为上帝
  11. IntelliJ IDEA 快捷键 Mac版(个人自用最新版)
  12. 笔记本电脑切换不到投影仪 问题 解决方法
  13. 关于eclipse项目中项目上直接出现大红感叹号的问题
  14. 毕业一周年总结-不忘初心,砥砺前行
  15. vivo计算机的隐藏功能介绍,vivo手机13个隐藏功能介绍,你知道几个?
  16. 如何修改安卓软件的图标和名字
  17. broadcom linux 博客,Broadcom SDK6.4.4驱动架构简单理解
  18. 多视图CAD检测系统乳腺X线摄影基于案例的检测性能优化
  19. I2C-pcf8563
  20. SSM:实现用户信息的增删改和分页展示

热门文章

  1. 【Python】functools.lru_cache加快递归速度
  2. linux基础(一)——切换到root用户和普通用户
  3. osgi java web_基于 OSGi 和 Spring 开发 Web 应用
  4. lbs的核心技术都有哪些?_直击现场 | 腾讯云“揭秘智慧出行核心技术与创新实践”活动完美落幕!...
  5. dotenv 是什么 怎么使用
  6. 软件学报 流程 期刊投稿记录 状态变更 时间
  7. excel内容少却文件很大_Excel文件格式批量转换你会了吗?神操作!Excel文件转XPS格式...
  8. oracle between 和大于小于性能_2.oracle伪例+序列
  9. asp.net电子影像相册_大连孕妈看过来 | 290元=孕中期四维排畸+孕妇写真+胎宝电子影集...
  10. php的链接查询,php – 使用指向另一个查询的链接运行查询.