需求:在不借助系统库的情况下,编写一个函数,实现开根号的操作,并且保证一定的精度

代码采用了牛顿迭代法以及二分查找法两种方式并分别打印了他们的循环次数以比较优劣:

/*** 实现一个函数,完成对v开根号的操作,误差小于t,不能调用函数库*/
public class Sqrt{/*** 可以使用牛顿迭代法* 首先随便猜一个近似值x,然后不断令x等于x和a/x的平均数,迭代个六七次后x的值就已经相当精确了*/public static double iter(int v,double t){int i = 0;// 首先预估一个数double random = v >> 1;while(abs((v-random*random)) > t){random = (random + v/random) >> 1;i++;}System.out.println("开根号值: "+random+"  ,循环次数: "+i);return random;}// 二分查找法public static double binarySearch(int v,double t){int i = 0;double max = v;double min = 0;double temp = v >> 1;while (abs(temp*temp-v) > t){if (temp*temp > v ){max = temp;} else if(temp*temp < v){min = temp;}temp = (min+max) >> 1;i++;}System.out.println("开根号值: "+temp+"  ,循环次数: "+i);return temp;}public static double abs(double a){return (a <= 0.0D) ? 0.0D - a : a ;}public static void main(String[] args) {iter(100,0.1);System.out.println("-----------------");binarySearch(100,0.1);}
}

结果如下:

开根号值: 31.638589750191308  ,循环次数: 7
-----------------
开根号值: 31.63909912109375  ,循环次数: 16

牛顿迭代法相比较二分查找法效率更高

java实现一定精度的开根号运算相关推荐

  1. java如何对一个表达式开根号_作为一个零基础的新手,如何系统的自学Java和JavaEE开发技术?...

    0基础就找资料学习吧,建议不要看书,选择视频更好,对于新手来说,书本如果在没有人指导之下去看基本上很难看懂 在你学习Java之前一定要去了解一下这门语言,千万不要脑子热就选择来这行 如何系统的自学Ja ...

  2. oracle对成绩开根号运算,Oracle SQL 之 数学计算-开方根(咋个办呢 zgbn)

    1.求100的5次开方. 推到公式:a^b=c        log(a,c)=b      log(a,c)=ln(c)/ln(a)=b 如题:  x^5=100 ->log(x,100)=5 ...

  3. maya python 开根号,基于python不同开根号的速度对比分析

    我就废话不多说了,大家还是直接看代码吧~ import time import math import numpy as np def timeit1(): s = time.time() for i ...

  4. Java中开根号,你还记得吗

    目录 前言 一.了解根号运算 二.Java开根号 1.Math.sqrt()开平方根 2.Math.pow()开根号 3.牛顿迭代法来近似求解平方根 总结 前言 开根号相信大家都不陌生,这是一种数学运 ...

  5. java小数丢失精度_Java中的小数运算与精度损失

    float.double类型的问题 我们都知道,计算机是使用二进制存储数据的.而平常生活中,大多数情况下我们都是使用的十进制,因此计算机显示给我们看的内容大多数也是十进制的,这就使得很多时候数据需要在 ...

  6. java中小数的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定

    java中小数的处理:高精度运算用bigDecimal类,精度保留方法,即舍入方式的指定 2016年05月11日 11:20:08 阅读数:6336 一. 计算机的小数计算一定范围内精确,超过范围只能 ...

  7. android开根号,定点数开根号的性能问题

    8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 开根号有两种比较常见的方式:牛顿迭代法和二分法. 二分法 public static double SqrtBinary ...

  8. math库的Python实现原理(根号运算)

    本系列主要使用Python 实现,主要展示计算机基本数学运算是如何实现的,对于Python中math底层应该是c写的,所以直接在库里查不到源代码,其中所有内容均是查阅的资料,不一定是最高效的,但会尽量 ...

  9. 用计算机算出手机号码,手机计算器开根号怎么按(万能科学计算器在线使用方法)...

    在日常生活中,因为手机的方便些,也越来越成为我们生活中不可或缺的一部分了.因此,大家对手机也并不陌生,那么你的手机里有自带的计算器功能吗?你知道手机里自动的计算器功能如何正常使用吗?你知道手机自带的计 ...

最新文章

  1. 题目1000:计算a+b
  2. 用x86的模拟器内核记得安装intel的haxm
  3. 使用Keras构建具有自定义结构和层次图卷积神经网络(GCNN)
  4. 将tif文件转化为png文件 Python3
  5. CDI和EJB:在事务成功时发送异步邮件
  6. 【转】VS中常用图标提示含义
  7. 使用记事本完成第一个java程序
  8. 华山论“件”:Kafka、RabbitMQ、RocketMQ技能大比拼
  9. 用友仓库档案boot直接访问html,图文解析用友仓库软件怎样设置档案?
  10. 移动宽带断网 服务器没有响应,移动宽带卡终于解决了(移动宽带间歇性断网)...
  11. 心形一行python_《心》字意思读音、组词解释及笔画数 - 新华字典 - 911查询
  12. 渗透工具SharpXDecrypt:Xshell全版本凭证一键恢复工具,针对Xshell全版本在本地保存的密码进行解密
  13. Tomcat8如何配置项目appBase和docBase
  14. 读书笔记 - 《上帝的跳蚤》
  15. raid1硬盘计算机能读取,1,如何计算各种RAID硬盘的容量? ? ?
  16. dell poweredge服务器_这款AMD服务器不简单
  17. 使用Java和FFempeg批量转码B站缓存下来的列表视频,成MP4格式
  18. 免费/中文/功能强大的Modbus调试软件:MThings
  19. 【转】我的辛酸奋斗史3/3
  20. 请求第三方阿里发送验证码

热门文章

  1. 打开word文档时提示“Microsoft Office Word已停止工作”
  2. 4个步骤,用聚类分析法实现用户分析!
  3. 探索用户行为(淘宝用户行为分析)
  4. MATLAB计算基础知识
  5. 龙芯 01 龙芯派1C300B 智龙 V3.42
  6. Ettercap系列 I+:名词解释
  7. doc/docx 批量转换html txt工具
  8. obs studio 编译摄像头源,即视频捕获设备,可以从添加源中找到并使用它
  9. 在Android studio的一个新建的Activity中添加Toolbar以及相应的功能添加
  10. winEdt使用教程