2017-10-15 42 views
0

陣列的直方圖我有一個陣列,其包括雙:在陣列中創建雙打

double[] myArray = {1.23455, 1.23456, 2.45673, 6.45678, 8.12938} 

的數量和在數組元素會有所不同的數量。我如何從這個數組中創建一個直方圖?我試圖做這樣的事情來創建範圍:

double sizeOfRange = (max-min)/(numberOfRanges-1); 

其中最大值和最小值都在myarray的最大值和最小值,但除此之外,我對於如何做到這一點完全喪失。我對java很陌生,希望問題能夠正確的提出。

+0

直方圖是什麼?雙方都期待什麼? – 2017-10-15 08:50:12

回答

0

我不知道這是你想要的東西,但它肯定能幫助你,如果你是首發:

Double[] myArray = {1.23455, 1.23456, 2.45673, 6.45678, 8.56938, 3.65645, 5.65478, 2.54773, 9.63345}; 
    int nRanges = 3; 
    int[] buckets = new int[nRanges]; 
    double max = Collections.max(Arrays.asList(myArray)); 
    double min = Collections.min(Arrays.asList(myArray)); 
    double sizeOfRange = (max-min)/(nRanges - 1); 

    for (double elem : myArray){ 
     for (int i = 0; i < nRanges; i++){ 
      if ((elem >= sizeOfRange * i) && (elem < sizeOfRange * (i + 1))) 
       buckets[i]++; 
     } 
    } 

    for (int i = 0; i < nRanges; i++){ 
     System.out.println(sizeOfRange * i + " - " + sizeOfRange * (i + 1) + ": " + buckets[i]); 
    } 

Collections類提供了很多有用的方法,就像maxmin。然後這個代碼的核心是從第8行到第13行:在那個for裏面,我正在增加可以放置對應的值的範圍的頻率。