Я пытаюсь вычислить среднее число, не будучи отброшенным маленьким набором далеких чисел (т.е., 1,2,1,2,3,4,50), единственные 50 отбросят все среднее число.
Если у меня есть список чисел как так:
19,20,21,21,22,30,60,60
Среднее число равняется 31
Медиана равняется 30
Режим равняется 21 и 60 (усредненный к 40,5)
Но любой видит, что большинство находится в диапазоне 19-22 (5 в, 3) и если Вы получаете среднее число просто главного диапазона, это 20.6 (большая разница, чем любое из чисел выше)
Я думаю, что можно получить это как так:
c+d-r
Где c
количество числа, d
отличные значения, и r
диапазон. Затем можно применить это ко всем диапазонам possble, и самый высокий счет является диапазоном omptimal для получения среднего числа от.
Например, 19,20,21,21,22
были бы 5 чисел, 4 отличных значения, и диапазон равняется 3 (22 - 19). При включении этого в мое уравнение, Вы добираетесь 5+4-3=6
При применении этого ко всему списку числа, это было бы 8+6-41 =-27
Я думаю, что это работает довольно хорошее, но я должен создать огромный цикл для тестирования против всех возможных диапазонов. В просто моем небольшом примере существует 21 возможный диапазон:
19-19, 19-20, 19-21, 19-22, 19-30, 19-60, 20-20, 20-21, 20-22, 20-30, 20-60, 21-21, 21-22, 21-30, 21-60, 22-22, 22-30, 22-60, 30-30, 30-60, 60-60
Я задаюсь вопросом, существует ли более эффективный способ получить среднее число как это.
Или если у кого-то есть лучший алгоритм все вместе?