JAVA实现开根号的两种方式:二分法以及牛顿迭代法
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实现开根号的两种方式:二分法以及牛顿迭代法相关推荐
- Java中HashMap遍历的两种方式
第一种: Map map = new HashMap(); Iterator iter = map.entrySet().iterator(); while (iter.hasNext()) { Ma ...
- java读取csv文件的两种方式
java读取csv文件的两种方式 1.CsvReader读取 import com.csvreader.CsvReader; /*** CsvReader 读取* @param filePath* @ ...
- Java判断回文数(两种方式)
Java判断回文数(两种方式) 回文数是一个非常特殊的数,它从左边读和从右边读是一样的.例如12321 判断方式有两种. 方式一:对该数字进行分解,然后一一比对,拆解成 1 2 3 2 1,然后第一位 ...
- Java中实现多线程的两种方式之间的区别
Java提供了线程类Thread来创建多线程的程序.其实,创建线程与创建普通的类的对象的操作是一样的,而线程就是Thread类或其子类的实例对象.每个Thread对象描述了一个单独的线程.要产生一个线 ...
- java中实现同步的两种方式:syschronized和lock的区别和联系
转载自 http://www.cnblogs.com/xiohao/p/4151408.html Lock是java.util.concurrent.locks包下的接口,Lock 实现提供了比使用s ...
- java jobdetail_Spring创建JobDetail的两种方式
一.Spring创建JobDetail的两种方式 定时任务两种方式,Spring很好的封装使用Quartz的细节,第一种方式是利用SPring封装的Quartz类进行特定方法的实现,第二种是通过透明的 ...
- Java中Http连接的两种方式
在java中连接http,介绍两种方法,一种是java的HttpUrlConnection,另一种是apacha公司的httpClient,后者是第三方的类库需要从外部,导入,同时这也是第一次使用外部 ...
- java操作excel常用的两种方式
转载自:https://www.cnblogs.com/wangyang108/p/6030420.html Excel是我们平时工作中比较常用的用于存储二维表数据的,JAVA也可以直接对Excel进 ...
- Java中创建String的两种方式差异
我们知道创建一个String类型的变量一般有以下两种方法: String str1 = "abcd"; String str2 = new String("abcd&qu ...
最新文章
- 实用的bit 位操作
- 非洲儿童(南阳oj1036)(馋)
- linux shell脚本 wget,bash – 在shell脚本中运行wget和其他命令
- 记一次el-input使用的坑
- maven 打包时缺少文件_maven父子工程---子模块相互依赖打包时所遇到的问题:依赖的程序包找不到...
- 【今日CV 计算机视觉论文速览】Thu, 28 Feb 2019
- java jdbc 链接pg_Java使用JDBC连接postgresql数据库示例
- Firefox 火狐网址生成二维码扩展推荐
- npm webstorm配置_怎样使用webstorm中配置nodejs环境及npm
- 一键重启tomcat
- mac pdf去水印_mac如何去除视频水印
- 语音转写(讯飞开放平台)工具类
- 大学计算机基础课都学什么,大学计算机基础课程
- 淘宝自动确认收货怎么使用Springboot+RabbitMQ实现?
- Vokenization:一种比GPT-3更有常识的视觉语言模型
- 微信小程序 还在为滑动加载数据烦劳吗? 封装滚动加载方法 看了就会
- jupter 使用
- 渗透测试常用在线工具汇总
- vue + prerender + html-webpack-plugin 打包商桥项目报错
- C++多态如何理解?实现多态性呢?多态性的作用呢?