Я пытаюсь запрограммировать программу для вычисления средневзвешенного значения, но у меня есть небольшая проблема, которую я не могу решить.чтобы найти взвешенную медиану, вы должны разделить каждый вес на сумму, а затем сравнить его с 0,5, если больше означает, что найденная взвешенная медиана затем возвращает соответствующее значение x.вот пример:
x = [3,4,6,10]
w = [1,2,3,5]
1/11 > 1/2 ? no
1/11+ 2/11 > 1/2 ? no
1/11+ 2/11 + 3/11 > 1/2 ? yes
, затем верните 6, поскольку это соответствует 3
вот моя попытка:
public static void main(String[] args) {
int[] x = new int[] {3,4,6,10};
int[] w = new int[] {1,2,3,5};
int sum = Arrays.stream(w).sum();//11
if ((w[0]/sum)>0.5){
System.out.print("The weighted meadin is " + x[0]);
}
else if ((w[0]/sum)+(w[1]/sum)>0.5){
System.out.print("The weighted meadin is " + x[1]);
}
else if ((w[0]/sum)+(w[1]/sum)+(w[2]/sum)>0.5){
System.out.print("The weighted meadin is " + x[2]);
}
else if ((w[0]/sum)+(w[1]/sum)+(w[2]/sum)+(w[3]/sum)>0.5){
System.out.print("The weighted meadin is " + x[3]);
}
else{
System.out.print("The weighted meadin not found");
}
}
это всегда возвращает последний оператор else.