Я пытаюсь вычислить среднее значение, не отбрасывая его небольшим набором удаленных чисел (т. Е. 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 + dr
Где c
это количестводля чисел d
- это отдельные значения, а r
- диапазон.Затем вы можете применить это ко всем возможным диапазонам, и наивысший балл - это максимальный диапазон, от которого можно получить среднее значение.
Например, 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
Мне интересно, есть ли более эффективный способ получить среднее значение, подобное этому.
Или если у кого-то есть лучший алгоритм все вместе?