我有一個排序的比率列表,我需要找到一個足夠小的「bin大小」,以便它們都不重疊。簡而言之,我需要做標題所說的事情。如果你想要一點背景,請繼續閱讀。獲取排序列表中相鄰數組元素之間的最小差異
我正在進行圖形實驗,處理比率和眼睛快速區分這些比率的能力。因此,當我們形成這些實驗時,我們使用從點陣箱中選擇的各種比率的閃點。一個bin只是一個可能的比例範圍,其中所提到的數組元素在中心。所有點陣箱需要具有相同的尺寸。這意味着我們需要找到數組中彼此最接近的元素。請記住,該數組已排序。
任何人都可以想到一個很酷的方式來做到這一點?我從來沒有特別在算法上傾斜,所以現在我只是向後運行數組,並從當前數組中減去下一個元素,然後對照總和進行檢查。由於
private double findNumerostyBinRangeConstant(double[] ratios) {
int minI = 0;
double min = 0;
for (int i = ratios.length -1; i > 0; i--) {
if (ratios[i] - ratios[i-1] > min) {
min = ratios[i] - ratios[i-1];
minI = i;
}
}
return Math.sqrt(ratios[minI]/ratios[minI - 1]); //Essentiall a geometric mean. Doesn't really matter.
}
a和b'sqrt(a * b)'之間的幾何平均數不是幾何平均數? – JoshD 2010-10-21 21:47:01