*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给出了找到二维空间中距离最近的两个点的程序。修改该程序,让程序能找出在三维空间上距离最近的两个点相关推荐

  1. Java黑皮书课后题第5章:*5.23(演示抵消错误)当处理一个很大的数字或很小的数字时候,会产生一个抵消错误。……编写程序对上面的数列从左到右和从右向左计算的结果进行比较,n=50000

    5.23(演示抵消错误)1 + 1/2 + 1/3 + -- + 1/n,编写程序对上面的数列从左到右和从右向左计算的结果进行比较,n=50000 题目 题目概述 破题 代码 运行示例 题目 题目概述 ...

  2. Java黑皮书课后题第1章:1.6(数列求和)编写程序,显示1+2+3+4+5+6+7+8+9的结果

    Java黑皮书课后题第1章:1.6(数列求和) 题目 题目描述 槽点 代码 代码块 区分println(x)与println("x") 法1法2选用 修改日志 题目 题目描述 1. ...

  3. Java黑皮书课后题第1章:*1.11(人口估算)编写一个程序,显示未来5年的每年人口数。假设当前的人口是312 032 486,每年有365天

    Java黑皮书课后题第1章:*1.11(人口估算) 题目 题目描述 破题 代码块 方法评析 为什么print函数内的表达式不能分开 修改日志 题目 题目描述 *1.11(人口估算)编写一个程序,显示未 ...

  4. 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 ...

  5. Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt(100)方法显示0到100之间的前50个随机整数

    Java黑皮书课后题第9章:*9.4(使用Random类)编写一个程序,创建一个种子为1000的Random对象,然后使用nextInt方法显示0到100之间的前50个随机整数 题目 赘述 代码 题目 ...

  6. Java黑皮书课后题第9章:*9.3(使用Date类)编写程序创建一个Date对象,设置它的流逝时间分别为...,然后使用toString()方法分别显示上述日期

    Java黑皮书课后题第9章:*9.3(使用Date类)编写程序创建一个Date对象,设置它的流逝时间分别为...,然后使用toString方法分别显示上述日期 题目 代码 思路 代码 题目 代码 思路 ...

  7. Java黑皮书课后题第1章:1.12(以千米计的平均速度)假设一个跑步者1小时40分35秒跑了24英里。编写一个程序显示以每小时为多少千米为单位的平均速度值(1英里等于1.6千米)

    Java黑皮书课后题第1章:1.12(以千米计的平均速度) 题目 题目描述 破题 代码块 修改日志 题目 题目描述 1.12(以千米计的平均速度)假设一个跑步者1小时40分35秒跑了24英里.编写一个 ...

  8. 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+-) ...

  9. Java黑皮书课后题第1章:1.5(计算表达式)编写程序,显示以下式子的结果

    Java黑皮书课后题第1章:1.5(计算表达式) 题目 题目描述 题目槽点 代码 代码块 代码评析与易错点 方法选用 易错点 非常不舒服的运算符前后空格(对新手来讲) 修改日志 题目 题目描述 编写程 ...

  10. Java黑皮书课后题第1章:1.3(显示图案)编写程序,显示下面的图案 Java

    Java黑皮书课后题第1章:1.3编写程序,显示下面的图案 题目 题目描述 题目槽点 代码片段 赘述 修改日志 题目 题目描述 编写程序,显示(自己语言描述,详见下图:由不同数量的小字母组成JAVA大 ...

最新文章

  1. hadoop本地模式部署_hadoop启动模式、基本配置、启动方式
  2. 从实战中了解数据开发全流程——DataWorks OpenAPI实战
  3. web前端工程师全套教程免费分享
  4. python两列数据相关性_使用.corr获取两列之间的相关性
  5. (转)如何检查系统是否支持Zend Optimizer
  6. 操作系统(5)-进程调度算法
  7. ajax的content-download时间过慢问题的解决与思考
  8. Ubuntu中网络编程的环境配置
  9. SpringBoot--定义全局日期响应格式
  10. [EdgeAI] NXP eIQ 机器学习Toolkit (一):准备篇
  11. vue-element-admin(基础篇)
  12. 如何把Excel表格显示到邮件正文里?
  13. Uboot11之主Makefile分析2
  14. 036卫星轨道及卫星在轨运动
  15. FL Studio20.9序列号账户注册教程
  16. 洛谷 P5266 【深基17.例6】学籍管理 题解
  17. 程序员绝不要做“IT民工”
  18. 编程语言Python与C的优劣比较
  19. RecyclerView二级列表
  20. itunes 备份路径 修改_被苹果抛弃的最不讨喜应用:iTunes兴衰史

热门文章

  1. 文件上怎么盖章_投标文件该怎么盖章呢?投标人必看!
  2. osgi框架和spring区别_最新100道大厂高频spring面试题附答案
  3. python大数据分析基础教程_基于Python的大数据分析基础及实战
  4. 这家创新学校是如何用钉钉宜搭构建了数字化管理网络的?
  5. 开源之夏 | 阿里开源近百任务上线
  6. 云计算公网质量评测方法和最佳实践
  7. 揭秘!双11万亿流量下的分布式缓存系统 Tair
  8. lin总线可以控制几个节点_汽车上除了CAN通讯还有另外一种总线你需要知道
  9. 《仙剑奇侠传》的宗教元素考察(一):赵灵儿的宿命之旅
  10. 一天学完spark的Scala基础语法教程五、闭包(idea版本)