怎么求10个数中靠得最近的8个数?

rollrock1987 2015-05-15 09:43:10
现在有10个整数,需要求出里面最接近8个数,不知道怎么算。
...全文
474 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
三仙半 2015-07-23
  • 打赏
  • 举报
回复
确定好距离定义和最靠近的要求,然后用K-近邻聚类算法
kerbcurb 2015-06-06
  • 打赏
  • 举报
回复
10个数取8个,可以有10X9/2 = 45种取法,计算每种取法的方差,最小的为所求
cnmhx 2015-05-20
  • 打赏
  • 举报
回复
先得定义距离。
panghuhu250 2015-05-18
  • 打赏
  • 举报
回复
靠得最近可以指: 最大最小值之间差距最小, 这一组数的平方差最小, 所有数离平均值的距离和最小, 等等. 所以你要先精确定义"靠得最近"的含义. 不过不管什么定义, 先把原数组排序的话, 要找的这一组数在其中都应该是连在一起的. 所以先排序, 再检查O(n)个可能的连续子序列是不错的算法.
欢乐的小猪 2015-05-18
  • 打赏
  • 举报
回复
假设是有序序列。 a1,a2,,,a100 定义变量index=1,index保存靠的最近的数的起始位置 定义变量difference=0,difference保存后者与当前最近距离的差值(正数) 依次比较一遍 (a2-a1),(a61-a60) 如果前者较小,则index=1,更新difference为二者的差值,若后者较小,则index=2,更新difference为0 (a3-a2-difference),(a62-a61) 如果前者较小,则index不变,更新difference为二者的差值,若后者较小,则index=3,更新difference为0
引用 2 楼 rollrock1987 的回复:
[quote=引用 1 楼 dbhme 的回复:] 排序 然后只有3种可能,去掉前面2个,去掉后面两个,头尾各去一个
哦哦,你这种是枚举的方法 那100个当中取60个 这样的方法好像不是很行得通 是我提问的例子有问题。。。。[/quote]
  • 打赏
  • 举报
回复
感觉LZ想问的是逼近与拟合的问题,也就是要排除噪点?
  • 打赏
  • 举报
回复
题目本身有缺陷,“靠得最近”没有参照物。 如果是以平均值为参照物,刨去最大值和最小值就可以了。 要么,就是将这10个数排成有序数列,看数的分布了。 如果是均匀分布,那么就不存在最近的8个数。 如果有不足8个数离其它的数非常远,也不存在最近的8个数,因为没参照物。
rollrock1987 2015-05-15
  • 打赏
  • 举报
回复
引用 1 楼 dbhme 的回复:
排序 然后只有3种可能,去掉前面2个,去掉后面两个,头尾各去一个
哦哦,你这种是枚举的方法 那100个当中取60个 这样的方法好像不是很行得通 是我提问的例子有问题。。。。
dbhme 2015-05-15
  • 打赏
  • 举报
回复
排序 然后只有3种可能,去掉前面2个,去掉后面两个,头尾各去一个

33,010

社区成员

发帖
与我相关
我的任务
社区描述
数据结构与算法相关内容讨论专区
社区管理员
  • 数据结构与算法社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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