2012-11-29 33 views
-1

我有一个队列包含不同计数的消息&我有脚本来读取队列并处理消息。我的问题是:一些队列的消息数量非常大,比通常的消息数量多得多&。所以,为了改进处理过程,我想要处理队列中有更多数量的队列。如果队列具有线性差异(例如:1000,1200,1300,1800,1900),我想处理完整队列。如果假设计数是(1000,1200,1300,1800,1900,4000,4500,4900,5200) - 在这里是4000+以上是更大的队列所以我只想要这些队列。找到比其他人有更多差异的号码

我希望一些数学计算标准偏差等将有所帮助,但我不知道如何接近它。

+0

请更具体地指定一下“获取数字”的含义。你的意思是你想接收数字的“小组”吗?或者你只是想得到两组之间边界上的数字? – phil13131

+0

一组数字 – Garfield

+0

看到我的答案在下面... – phil13131

回答

0

我就开始这样的:

  • 拿(在这种情况下,1000)第一号和这一个devide阵列中的每个数字和保存率,根据每一个号码。
  • 以你定义的基数为基础,记录每个这些分数的“非常不同”(如5或10),并根据每个数字保存它们。
  • 将所有数字放在一个组中,其中小数的记录位于-1和1之间,并从所有数字的数组中删除这些数字。
  • 重新开始重新编号并继续,直到您只有1个(您将放入新组)或没有剩下编号。
0
  1. 从排序开始。
  2. 收集相邻元素之间差异的统计信息。
  3. 选择几个“大”跳“大”

定义可以是不同的。如果你知道他们的号码(例如只有两个组),只需选择适当数量的最大跳数(比组数小1)。或者,您可以采取一定比例的大跳跃或分析平均值和变化来选择某个阈值。

+0

排序值,定义一个窗口,计算均值和stddiff为每个窗口计算右边窗口元素的机会。如果机会太低,请考虑跳跃“大”。 – jgroenen

相关问题