生活随笔
收集整理的這篇文章主要介紹了
算法-第四版-练习1.2.3解答
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
編寫一個Interval2D的用例,從命令行接受參數N、min和max。生成N個隨機的2D間隔,其寬度和高均勻地分布在單位正方形中的min和max之間。用StdDraw畫出它們并打印出相交的間隔對的數量以及有包含關系的間隔對數量。
/*** Description : * Author : mn@furzoom.com* Date : Sep 26, 2016 3:26:18 PM* Copyright (c) 2013-2016, http://furzoom.com All Rights Reserved.*/
package com.furzoom.lab.algs.ch102;import edu.princeton.cs.algs4.Interval1D;
import edu.princeton.cs.algs4.Interval2D;
import edu.princeton.cs.algs4.StdRandom;/*** ClassName : E10203 <br>* Function : TODO ADD FUNCTION. <br>* date : Sep 26, 2016 3:26:18 PM <br>* * @version */
public class E10203
{public static double min(double d1, double d2){return d1 < d2 ? d1 : d2;}public static double max(double d1, double d2){return d1 > d2 ? d1 : d2;}public static void main(String[] args){int n = Integer.parseInt(args[0]);double min = Double.parseDouble(args[1]);double max = Double.parseDouble(args[2]);Interval2D[] intervals = new Interval2D[n];for (int i = 0; i < n; i++){double d1 = StdRandom.uniform(min, max);double d2 = StdRandom.uniform(min, max);double d3 = StdRandom.uniform(min, max);double d4 = StdRandom.uniform(min, max);intervals[i] = new Interval2D(new Interval1D(min(d1, d2), max(d1, d2)),new Interval1D(min(d3, d4), max(d3, d4)));}// draw all Interval2Dfor (int i = 0; i < n; i++){intervals[i].draw();}// int countIntersects = 0;int countContains = 0;for (int i = 0; i < n - 1; i++){for (int j = i + 1; j < n; j++){if (intervals[i].intersects(intervals[j])){countIntersects++;}
// if (intervals[i].contains(intervals[j]))
// {
//
// }}}System.out.println(countIntersects);}
}
結果如下:
相交的數量為5.
算法-第四版-1.2 數據抽象-習題索引匯總
算法-第四版習題索引匯總
總結
以上是生活随笔為你收集整理的算法-第四版-练习1.2.3解答的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。