首先我们要知道权重的意思,举个例子数字a,b,c对应的权重为,a1,b1,c1。那么该组数据的平均值就是(a*a1+b*b1+c*c1)/(a1+b1+c1)。
知道了这些我们在来想思路
首先就是计算劝平均值,然后让数组的各个值与平均值相减,最后把他们相减的值的绝对值进行比较,得到最小的然后再加上平均值,得到该组数据的中位值。
下面是代码
public class median {
/**
* @param 计算中位数
*/
public static void main(String[] args) {
double[] num = new double[]{0.5,1.24,18,1.4,2.1,3.2,2.5,13,2.6,18,2.25,1.2,1.83,1.3,2.1};
double[] wnum = new double[]{0.8,0.2,1.98,1.4,2.1,3.8,2.1,2.12,0.5,5.6,1.1,1.2,3.5,1.2,1.5};
double[] menum = new double[num.length];//数据和平均值的差
double sum = 0;//算上权重后数据之和
double wsum = 0;//权重之和
double avg = 0;//平均值
for (int i = 0; i < num.length; i++) {
sum = sum+num[i]*wnum[i];
wsum = wsum+wnum[i];
}
avg = sum/wsum;
for (int i = 0; i < menum.len