Dan*_*age 9 random algorithm intervals
我有一个区间G,以及一组不同长度的非重叠子区间s 1,s 2,...,s n.
G |--------------------------------------------------------------// //-----------|
s1 [---] s3 [------------------]
s2 [------] sn [--]
Run Code Online (Sandbox Code Playgroud)
我正在寻找一种算法来获取所有这些子间隔,然后将它们再次放在G上,这样它们就不会重叠.做这个的最好方式是什么?
最简单,最天真的方法是简单地随机选择每个子区间的起始位置,一旦放置所有区间就检查重叠,然后如果存在重叠则重新开始.如果子间隔提供G的稀疏覆盖,但随着密度的增加,效率会越来越低,这可能会非常快.
类似的想法是在放置每个子间隔时检查重叠.然而,对效率的类似担忧.
有没有更聪明的方法来处理这个?
UPDATE
澄清几点:
我认为okio的答案会给出差距的偏差分布(即第一个差距往往会比后来的差距更大.
但是,我认为一种非常类似的方法应该更好:
| 归档时间: |
|
| 查看次数: |
332 次 |
| 最近记录: |