请大家对这个问题给个算法意见,合理都有分!

zhilaizhiw 2009-02-10 10:17:27
问题很简单,比如有5组数据(int型),现在要把他们求平均.但是呢,如果其中的某组数很明显地和其他的数据相差太多(比如相差一个位数),就把它舍弃后再求平均.
例如:
1000, 2000, 15000, 2000, 2000.
很明显15000是应该舍去的.
我想集思广益,找个最合适的算法.
合理即有分~
...全文
121 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
Hertz_liu 2009-02-10
  • 打赏
  • 举报
回复
方差~~
sphinger 2009-02-10
  • 打赏
  • 举报
回复
打酱油的
绿色夹克衫 2009-02-10
  • 打赏
  • 举报
回复
用阀值迭代可以,大概思想就是先定一个阀值,然后求出平均,凡是同平均数的距离大于阀值的都去掉,
然后重新计算平均,直到一个都去不掉为止,距离算法用直接相减或方差都可以,阀值定为倍数或标准差也都可以

也可以用中位数+阀值,取中位数作为基准,而不是用平均数作为基准,直接用阀值算出上限和下限,删掉即可,
niitnanfeng 2009-02-10
  • 打赏
  • 举报
回复
顶你下
zhilaizhiw 2009-02-10
  • 打赏
  • 举报
回复
好吧,方差我看过了.
把得到的方差和每组数据相比,得到相差比较大的就是应该舍去的数据吧?
但是我由于时间问题,现在写不了那个代码.有没有人写好一个计算方差并比较的function呢?
50分全给你了!还能加分!
wanghui0380 2009-02-10
  • 打赏
  • 举报
回复
已经给你算法了
自己看一下方差的概念你就明白我说滴了
方差在数学统计上原本就是描述数据点离散度的标准
我姓区不姓区 2009-02-10
  • 打赏
  • 举报
回复
关键就是“相差太多”该怎么界定,这个条件要是不给出的话就无法做了
zhilaizhiw 2009-02-10
  • 打赏
  • 举报
回复
没人了?
1000,9999,10000,10001这种数据,应当是舍去1000,保留9999. 位数是一个条件,但只是我一开始假如的.
题目的要求是,与其他数据相比,舍去相差太多的.所以舍去1000,保留9999.
有没有人提供点实际的算法思想?
我姓区不姓区 2009-02-10
  • 打赏
  • 举报
回复
1000,9999,10000,10001怎么算
wanghui0380 2009-02-10
  • 打赏
  • 举报
回复
数据统计上一般采用“钟形曲线”做滴,不过钟形曲线都是基于大范围统计结果滴,所以像你这样的估计只能用单纯的方差比较了
yuyangyangde 2009-02-10
  • 打赏
  • 举报
回复
方差最简单呢

110,526

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧