Обьясните пожалуйста логику этого метода сравнения, почему разница квадратов у нас, и почему именно на 100 умножаем? Заранее большое спасибо!))
public int compare(Integer o1, Integer o2) {
double v1 = o1.intValue() - mediana;
double v2 = o2.intValue() - mediana;
return (int) ((v1 * v1 - v2 * v2) * 100);
}
Дарья
1 уровень
Смысл правильного решения! КТО НЕ решил - НЕ заходите.
Обсуждается
Комментарии (1)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Jabber Worker
11 мая 2023, 16:49
Квадрат используется для избавления от знака, можно использовать вместо этого Math.abs(). Так как у нас медиана считается через double, то нам надо преобразовать в int с некоторой точностью, в данном случае для этого используется один знак после запятой, а так как значения были возведены в квадрат, то и точность тоже в квадрате.
Вариант без квадратов выглядит так:
+3