在简单的线性数据集中查找并修复错误的值
|
这可能是一个简单的问题,但我找不到一个好的方法。
我有数量有限的有序整数值,这些值应该彼此具有相似的距离,例如:
32, 42, 52, 62, 72, 82
。
但实际上,某些价值观是错误的。我们可能以ѭ1end结尾。
如何找到明显错误的值(在这种情况下为66)并将其移动到正确的位置(42)?
可以假设大多数数据仍然有效,因此仍然有可能计算出点之间正确距离的正确猜测(此处为10)。
点数是已知且正确的(即,我们只需要移动即可,而无需添加或删除点)。
左侧和右侧的数据边界是未知的,可以自由定义边缘情况下的行为。
在写问题时,我想到了一些东西。一个想法可能是提取一个函数f(x) = a + x * b
(很简单)并遍历已知的点数。到迭代点的距离最大的基准被删除并插入到到原始点的距离最大的迭代位置。
没有找到相关结果
已邀请:
4 个回复
埃输林桨铃
届甸衬丝蚕
焙恍挝厂熄
的列表。 建立预期数据清单
建立所有点的距离矩阵
重复
选择最佳距离
如果找不到好的分配,请退出
否则,存储比赛
我们已识别并删除了源中所有有效的条目。我们仅使用期望集中的剩余值,而忽略剩余的原始值即可完成最终数据集。 其他尝试的方法(包括从gusbro改版的方法)效果不佳,并且经常对我表现出不良行为。
痰嫉
元素的平均值
。 在我们的示例中(32 + 51 + 62 + 66 + 71 + 83)/ 6 = 30.2 取整= 30 建立比较序列
,其中第一个元素
具有值
(其中
是元素的数量),任何其他元素
的值都为
。 在我们的示例中,
= {30,40,50,60,70,80} 由于输入序列中的元素可能已经移动到另一个位置, 建立ѭ11的每个排列 找到离群点数量最小的排列(离群点是元素,元素差较大的元素
在该示例中,算法的结果将是置换y,并由此找到元素66的正确位置。