我们有两组间隔,A和B.
A中的每个inteval都由两个正实数{A1start,A1end},{A2start,A2end},...,{Anstart,Anend}
描述。 Anend
同样是> Anstart
。 A中的间隔重叠。
集合B仅由两个值描述:间隔长度和间隔距离。间隔长度是每个间隔的增量,即Bnend - Bnstart
,并且> 0.间隔距离是任意两个Bnstart
之间的距离。 B中的间隔可能不重叠。
我们知道在任何时间间隔{A1start,Anend}
,A和B中的间隔数应该相等。
问题是:在{A1start,Anend}
的时间间隔内,我们可以将B与A 连续交叉吗?即B1
必须与A1
相交,B2
必须与A2
相交等。如果任何B与其指定的A相交,则其他任意A都可以。
我制定了两个算法规则并且目前卡住了:
{A1start,Anend}
的最小和最大间隔数,当A和B中的间隔数不相等时,我们用它来丢弃这些情况。这两个集合连续相交还有哪些其他条件?
答案 0 :(得分:1)
你可以这样解决:
Anstart
值中减去长度,将A中的所有间隔扩展B的间隔长度。您可以将A视为现在定义B中的间隔可以开始的所有有效位置。A1
与A2
相交-distance
,A3
偏移-2distance
... An
偏移{{1}来解决此问题。 }}。如果所有这些间隔的交集都是非空的,则A和B的交点是可能的。