Java黑皮书课后题第8章:*8.7(距离最近的两个点)程序清单8-3给出了找到二维空间中距离最近的两个点的程序。修改该程序,让程序能找出在三维空间上距离最近的两个点
生活随笔
收集整理的這篇文章主要介紹了
Java黑皮书课后题第8章:*8.7(距离最近的两个点)程序清单8-3给出了找到二维空间中距离最近的两个点的程序。修改该程序,让程序能找出在三维空间上距离最近的两个点
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
*8.7(距離最近的兩個點)程序清單8-3給出了找到二維空間中距離最近的兩個點的程序。修改該程序,讓程序能找出在三維空間上距離最近的兩個點
- 題目
- 題目描述
- 代碼
- 結(jié)果
題目
題目描述
*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. 主方法:創(chuàng)建聲明初始化points數(shù)組,復(fù)制題目給定語句即可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對象用于存儲最小值、兩個一維數(shù)組用于存儲最大值的兩端坐標(biāo)值,使用循環(huán)比較保存了所有點間距離的數(shù)組所有元素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. 主方法:將上面的兩個一維數(shù)組坐標(biāo)值輸出System.out.println(Arrays.toString(min_point1) + "\n" + Arrays.toString(min_point2));}//3. 自定義方法distance:接收傳入的兩個數(shù)組,作為兩點的坐標(biāo)public static double distance(double[] a, double[] b){//4. 自定義方法distance:將兩個數(shù)組對應(yīng)元素平方并求和,使用兩點距離公式求出距離并返回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);} }結(jié)果
[4.0, 1.0, 1.0] [3.5, 2.0, -1.0]總結(jié)
以上是生活随笔為你收集整理的Java黑皮书课后题第8章:*8.7(距离最近的两个点)程序清单8-3给出了找到二维空间中距离最近的两个点的程序。修改该程序,让程序能找出在三维空间上距离最近的两个点的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java黑皮书课后题第8章:**8.6(
- 下一篇: Java黑皮书课后题第8章:*8.8(所