public class demo {public static void main(String[] args) {System.out.println("———— 二分法计算根号 ————");double result_a = math_Method.mathematicalDichotomy(99999999L, 1, 2, 2);double result_b = math_Method.mathematicalDichotomy(99999999L, 2, 3, 8);if (result_a + result_a - result_b >= 0 || result_b - (result_a + result_a) <= 0) {System.out.println("综上 : √2 + √2 = √8");} else {System.out.println("综上 : √2 + √2 ≠ √8");}System.out.println("—— 牛顿迭代法计算根号 ——");double result_c = math_Method.Newton_iterative_method(2, 99999999L);double result_d = math_Method.Newton_iterative_method(8, 99999999L);if (result_c + result_c - result_d >= 0 || result_d - (result_c + result_c) <= 0) {System.out.println("综上 : √2 + √2 = √8");} else {System.out.println("综上 : √2 + √2 ≠ √8");}}
}class math_Method {public static double mathematicalDichotomy(long times, double low, double high, double number_Of_Required__square) {double average = 0, sum;for (int x = 0; x < times; x++) {average = (low + high) / 2;sum = average * average;if (sum > number_Of_Required__square)high = average;elselow = average;}System.out.println("√" + number_Of_Required__square + " = " + average);return average;}public static double Newton_iterative_method(double number_Of_Required__square, long times) {/* 牛顿迭代公式:X(n+1)=(X(n)+a/X(n))/2 */double X1 = number_Of_Required__square / 2;double X_n_jia_1 = 0;for (int i = 0; i <= times; i++) {X_n_jia_1 = (X1 + number_Of_Required__square / X1) / 2;if (X_n_jia_1 - X1 >= 0 & X_n_jia_1 - X1 <= 0.00000001) {System.out.println("√" + number_Of_Required__square + " = " + X_n_jia_1);break;} else if (X_n_jia_1 - X1 <= 0 & X_n_jia_1 - X1 >= 0.00000001) {System.out.println("√" + number_Of_Required__square + " = " + X_n_jia_1);break;} else {X1 = X_n_jia_1;}}return X_n_jia_1;}
}

JAVA实现开根号的两种方式:二分法以及牛顿迭代法相关推荐

  1. Java中HashMap遍历的两种方式

    第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...

  2. java读取csv文件的两种方式

    java读取csv文件的两种方式 1.CsvReader读取 import com.csvreader.CsvReader; /*** CsvReader 读取* @param filePath* @ ...

  3. Java判断回文数(两种方式)

    Java判断回文数(两种方式) 回文数是一个非常特殊的数,它从左边读和从右边读是一样的.例如12321 判断方式有两种. 方式一:对该数字进行分解,然后一一比对,拆解成 1 2 3 2 1,然后第一位 ...

  4. Java中实现多线程的两种方式之间的区别

    Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...

  5. java中实现同步的两种方式:syschronized和lock的区别和联系

    转载自 http://www.cnblogs.com/xiohao/p/4151408.html Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用s ...

  6. java jobdetail_Spring创建JobDetail的两种方式

    一.Spring创建JobDetail的两种方式 定时任务两种方式,Spring很好的封装使用Quartz的细节,第一种方式是利用SPring封装的Quartz类进行特定方法的实现,第二种是通过透明的 ...

  7. Java中Http连接的两种方式

    在java中连接http,介绍两种方法,一种是java的HttpUrlConnection,另一种是apacha公司的httpClient,后者是第三方的类库需要从外部,导入,同时这也是第一次使用外部 ...

  8. java操作excel常用的两种方式

    转载自:https://www.cnblogs.com/wangyang108/p/6030420.html Excel是我们平时工作中比较常用的用于存储二维表数据的,JAVA也可以直接对Excel进 ...

  9. Java中创建String的两种方式差异

    我们知道创建一个String类型的变量一般有以下两种方法: String str1 = "abcd"; String str2 = new String("abcd&qu ...

最新文章

  1. 实用的bit 位操作
  2. 非洲儿童(南阳oj1036)(馋)
  3. linux shell脚本 wget,bash – 在shell脚本中运行wget和其他命令
  4. 记一次el-input使用的坑
  5. maven 打包时缺少文件_maven父子工程---子模块相互依赖打包时所遇到的问题:依赖的程序包找不到...
  6. 【今日CV 计算机视觉论文速览】Thu, 28 Feb 2019
  7. java jdbc 链接pg_Java使用JDBC连接postgresql数据库示例
  8. Firefox 火狐网址生成二维码扩展推荐
  9. npm webstorm配置_怎样使用webstorm中配置nodejs环境及npm
  10. 一键重启tomcat
  11. mac pdf去水印_mac如何去除视频水印
  12. 语音转写(讯飞开放平台)工具类
  13. 大学计算机基础课都学什么,大学计算机基础课程
  14. 淘宝自动确认收货怎么使用Springboot+RabbitMQ实现?
  15. Vokenization:一种比GPT-3更有常识的视觉语言模型
  16. 微信小程序 还在为滑动加载数据烦劳吗? 封装滚动加载方法 看了就会
  17. jupter 使用
  18. 渗透测试常用在线工具汇总
  19. vue + prerender + html-webpack-plugin 打包商桥项目报错
  20. C++多态如何理解?实现多态性呢?多态性的作用呢?

热门文章

  1. Vue 列表 懒加载 触底加载
  2. 《Go语言圣经》第六章
  3. 如何让解决tomcat中文乱码问题
  4. .NET Reflector 8.3 软件下载 和 破解方法
  5. Oracle模糊查询的几种方法【推荐最后一种】
  6. Apache httpd 2.4 访问控制
  7. python堆叠瀑布图怎么做_教你用Python创建瀑布图
  8. Kubernetes 跨 StorageClass 迁移 Persistent Volumes 完全指南
  9. 选一条路,坚持走下去 | 专访芮臻赟润咨询创始人 Margaret Yao
  10. 【Windows电脑快捷键-实用篇】