打印

算法:从N个数中找出一半最相近的数

[复制链接]
1732|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
linnaldf|  楼主 | 2009-10-9 09:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 linnaldf 于 2009-10-9 09:41 编辑

脑中想的最笨方法:逐次比较,分成各个等级的组,数最多的那组作为求的的结果。

应该有更有效的方法,之前很少涉及算法方面的东西,有点摸不着思路啊....

这些为AD采集的数值,其分布大致如下图。
杯面的数据才是有用的数据,最理想状态下,杯面数据分布是一条直线。

数据为16位,杯面数据最少有5000个,最多有16750个。
也就是从5000-16750个数中,找出一半数,这些数最相近。

系统要经常做这个运算,感觉负担好重啊....

未命名.JPG (22.83 KB )

未命名.JPG

相关帖子

沙发
HWM| | 2009-10-9 09:15 | 只看该作者
要看你具体应用。若仅玩一次了事,那就逐个比较,按其“距离”排序。而若是重复操作,则先将N个数排序,这样虽然第一次比较“费事”,但后续会“省事”很多。

使用特权

评论回复
板凳
HWM| | 2009-10-9 10:31 | 只看该作者
哦,是这样。应该理解为求其分布中心一半的数据点吧。

采用两次扫描处理(其中第一此可以伴随着数据采集进行):

1)第一次扫描,得到数据点数相关于AD值的分布(直方图),求其期望值和一半分布的AD值端点。

2)第二次扫描,比较AD值数据(和分布的AD值端点比),筛选出几乎一半集中于中心的数据点。

注意:所选数据点数未必就是正好一半。

使用特权

评论回复
地板
ejack| | 2009-10-9 12:41 | 只看该作者
自动罐装机?:)
还是自动给客人斟酒?:)

单从你的模型来看运算负担确实不小。不过我认为你描述的模型过于简单,或许还有别的可资利用的条件呢?不妨详细点说一说

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

27

主题

70

帖子

1

粉丝