我试图找出在一定公差范围内对参数进行分组的最佳逻辑。用一个例子更容易解释。。。
Task1: parameter1=140
Task2: parameter1=137
Task3: parameter1=142
Task4: parameter1=139
Task5: parameter1=143
如果我想把两个以内的任务分组,我想我需要做几次传球。例如,期望的结果是:
任务4包括任务1、任务2和任务4
任务3包括任务3和任务5
有多种可能性,因为Task1也可以覆盖3和4,但是2和5将是两个单独的附加任务。基本上,我希望两个任务之间的任务数量最少。
我目前正在尝试在excel VBA中这样做,但我可以稍后将代码移植到php。我真的不知道从哪里开始,因为它看起来很复杂。
最佳答案
我想你需要一个聚类算法。考虑以下参数-
Task1: parameter1=140
Task2: parameter1=142
Task3: parameter1=144
Task4: parameter1=146
Task5: parameter1=148
根据你的逻辑,这里的集群会变得很奇怪。如果您只需检查每个号码附近的号码,所有这些都将是群集的。但是140和148应该在同一组吗?试试kmeans集群。会有一些灰色区域,但结果会相对准确。
http://en.wikipedia.org/wiki/K-means_clustering