先上图:
split1 split2 split3 split4
| | xx | |
| | x | |
| x |x x x |
| x | xxxx |x x x
| x x x x | |
x x x | x |x x x
--+--------+--------+------+--->
x axis
假定在 x 轴上,有 N 个点 (N >= 3),如上图所示 (图中为了表示方便 y 方向有分布,实际上 y 轴是不存在的,只是为了方便表示点的密度分布)
然后我们需要在这些点中,挑出 K 个作为分割点 (N >= K >= 3),其中第一个分割点是 N 个点中的最小值,最后一个分割点是 N 个点中的最大值;除了这两个点之外的其它分割点,需要使用一些方法来挑选
挑选的目标是:这些分割点的分割效果越均匀越好 (相邻的分割点之间的距离最好都差不多),上图就展示了一个不错的分割效果
如果这些点是在一个固定区间内随机分布的,那么随机挑 K - 2 个点作为分割点,效果也不会差太多。但是如果有一个区间的点密度特别高,随机采样就可能都落到这个高密度区间,效果就会非常差
请教一下,这个算法有一个正式的名称吗?求精确解和近似解分别有什么比较有效率的方法吗?
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.