Java黑皮书课后题第8章:*8.7(距离最近的两个点)程序清单8-3给出了找到二维空间中距离最近的两个点的程序。修改该程序,让程序能找出在三维空间上距离最近的两个点
*8.7(距离最近的两个点)程序清单8-3给出了找到二维空间中距离最近的两个点的程序。修改该程序,让程序能找出在三维空间上距离最近的两个点
- 题目
- 题目描述
- 代码
- 结果
题目
题目描述
*8.7(距离最近的两个点)程序清单8-3给出了找到二维空间中距离最近的两个点的程序。修改该程序,让程序能找出在三维空间上距离最近的两个点
使用下面的点来测试这个程序:
double[][] points = { {-1, 0, 3}, {-1, -1, -1}, {4, 1, 1},
{2, 0.5, 9}, {3.5, 2, -1}, {3, 1.5, 3}, {-1.5, 4, 2},
{5.5, 4, -0.5} };
计算两个点(x1, y1, z1)到(x2, y2, z2)的距离公式:
Math.sqrt( Math.pow(x2-x1, 2) + Math.pow(y2-y1, 2) + Math.pow(z2- z1, 2) )
代码
package blackbook.chapter8;import java.util.Arrays;public class Test8_7 {public static void main(String[] args) {//1. 主方法:创建声明初始化points数组,复制题目给定语句即可double[][] points = {{ -1, 0, 3},{ -1, -1, -1},{ 4, 1, 1},{ 2, 0.5, 9},{ 3.5, 2, -1},{ 3, 1.5, 3},{-1.5, 4, 2},{ 5.5, 4, -0.5}};//2. 主方法:新建一个double对象用于存储最小值、两个一维数组用于存储最大值的两端坐标值,使用循环比较保存了所有点间距离的数组所有元素double temp_ij = 0;double temp_min = distance(points[0], points[1]);double[] min_point1 = new double[3];double[] min_point2 = new double[3];for (int i = 0 ; i < points.length - 1; i++){for (int j = i + 1 ; j < points.length ; j++){temp_ij = distance(points[i], points[j]);if ( temp_min > temp_ij ){temp_min = temp_ij;min_point1 = points[i];min_point2 = points[j];}}}//5. 主方法:将上面的两个一维数组坐标值输出System.out.println(Arrays.toString(min_point1) + "\n" + Arrays.toString(min_point2));}//3. 自定义方法distance:接收传入的两个数组,作为两点的坐标public static double distance(double[] a, double[] b){//4. 自定义方法distance:将两个数组对应元素平方并求和,使用两点距离公式求出距离并返回double temp_distance = 0;for (int i = 0; i < a.length ; i++){temp_distance += Math.pow(b[i] - a[i], 2);}return Math.sqrt(temp_distance);}
}
结果
[4.0, 1.0, 1.0]
[3.5, 2.0, -1.0]
Java黑皮书课后题第8章:*8.7(距离最近的两个点)程序清单8-3给出了找到二维空间中距离最近的两个点的程序。修改该程序,让程序能找出在三维空间上距离最近的两个点相关推荐
- Java黑皮书课后题第5章:*5.23(演示抵消错误)当处理一个很大的数字或很小的数字时候,会产生一个抵消错误。……编写程序对上面的数列从左到右和从右向左计算的结果进行比较,n=50000
5.23(演示抵消错误)1 + 1/2 + 1/3 + -- + 1/n,编写程序对上面的数列从左到右和从右向左计算的结果进行比较,n=50000 题目 题目概述 破题 代码 运行示例 题目 题目概述 ...
- Java黑皮书课后题第1章:1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果
Java黑皮书课后题第1章:1.6(数列求和) 题目 题目描述 槽点 代码 代码块 区分println(x)与println("x") 法1法2选用 修改日志 题目 题目描述 1. ...
- Java黑皮书课后题第1章:*1.11(人口估算)编写一个程序,显示未来5年的每年人口数。假设当前的人口是312 032 486,每年有365天
Java黑皮书课后题第1章:*1.11(人口估算) 题目 题目描述 破题 代码块 方法评析 为什么print函数内的表达式不能分开 修改日志 题目 题目描述 *1.11(人口估算)编写一个程序,显示未 ...
- Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字
Java黑皮书课后题第10章:10.21(被5或6整除)找出能被5或6整除的大于Long.MAX_VALUE的前10个数字 题目 代码 结果 题目 都在上面 代码 import java.math.B ...
- Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt(100)方法显示0到100之间的前50个随机整数
Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt方法显示0到100之间的前50个随机整数 题目 赘述 代码 题目 ...
- Java黑皮书课后题第9章:*9.3(使用Date类)编写程序创建一个Date对象,设置它的流逝时间分别为...,然后使用toString()方法分别显示上述日期
Java黑皮书课后题第9章:*9.3(使用Date类)编写程序创建一个Date对象,设置它的流逝时间分别为...,然后使用toString方法分别显示上述日期 题目 代码 思路 代码 题目 代码 思路 ...
- Java黑皮书课后题第1章:1.12(以千米计的平均速度)假设一个跑步者1小时40分35秒跑了24英里。编写一个程序显示以每小时为多少千米为单位的平均速度值(1英里等于1.6千米)
Java黑皮书课后题第1章:1.12(以千米计的平均速度) 题目 题目描述 破题 代码块 修改日志 题目 题目描述 1.12(以千米计的平均速度)假设一个跑步者1小时40分35秒跑了24英里.编写一个 ...
- Java黑皮书课后题第1章:1.7(求π的近似值)编写程序,显示4*(1-1/3+1/5-1/7+1/9-1/11【+1/13】)
Java黑皮书课后题第1章:1.7(求π的近似值) 题目描述 代码 代码块 评析 修改日志 题目描述 可以使用以下公式计算π: [手动空格]π=4*(1-1/3+1/5-1/7+1/9-1/11+-) ...
- Java黑皮书课后题第1章:1.5(计算表达式)编写程序,显示以下式子的结果
Java黑皮书课后题第1章:1.5(计算表达式) 题目 题目描述 题目槽点 代码 代码块 代码评析与易错点 方法选用 易错点 非常不舒服的运算符前后空格(对新手来讲) 修改日志 题目 题目描述 编写程 ...
- Java黑皮书课后题第1章:1.3(显示图案)编写程序,显示下面的图案 Java
Java黑皮书课后题第1章:1.3编写程序,显示下面的图案 题目 题目描述 题目槽点 代码片段 赘述 修改日志 题目 题目描述 编写程序,显示(自己语言描述,详见下图:由不同数量的小字母组成JAVA大 ...
最新文章
- hadoop本地模式部署_hadoop启动模式、基本配置、启动方式
- 从实战中了解数据开发全流程——DataWorks OpenAPI实战
- web前端工程师全套教程免费分享
- python两列数据相关性_使用.corr获取两列之间的相关性
- (转)如何检查系统是否支持Zend Optimizer
- 操作系统(5)-进程调度算法
- ajax的content-download时间过慢问题的解决与思考
- Ubuntu中网络编程的环境配置
- SpringBoot--定义全局日期响应格式
- [EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇
- vue-element-admin(基础篇)
- 如何把Excel表格显示到邮件正文里?
- Uboot11之主Makefile分析2
- 036卫星轨道及卫星在轨运动
- FL Studio20.9序列号账户注册教程
- 洛谷 P5266 【深基17.例6】学籍管理 题解
- 程序员绝不要做“IT民工”
- 编程语言Python与C的优劣比较
- RecyclerView二级列表
- itunes 备份路径 修改_被苹果抛弃的最不讨喜应用:iTunes兴衰史
热门文章
- 文件上怎么盖章_投标文件该怎么盖章呢?投标人必看!
- osgi框架和spring区别_最新100道大厂高频spring面试题附答案
- python大数据分析基础教程_基于Python的大数据分析基础及实战
- 这家创新学校是如何用钉钉宜搭构建了数字化管理网络的?
- 开源之夏 | 阿里开源近百任务上线
- 云计算公网质量评测方法和最佳实践
- 揭秘!双11万亿流量下的分布式缓存系统 Tair
- lin总线可以控制几个节点_汽车上除了CAN通讯还有另外一种总线你需要知道
- 《仙剑奇侠传》的宗教元素考察(一):赵灵儿的宿命之旅
- 一天学完spark的Scala基础语法教程五、闭包(idea版本)