我试图计算一个平均值而不被一小组远离数字(即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是范围.然后你可以将它应用于所有可能的范围,最高分是获得平均值的最佳范围.
例如,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
我想知道是否有更有效的方法来获得这样的平均值.
或者如果某人有更好的算法?
5866

被折叠的 条评论
为什么被折叠?



