Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 连续相交于两组区间_Algorithm - Fatal编程技术网

Algorithm 连续相交于两组区间

Algorithm 连续相交于两组区间,algorithm,Algorithm,我们有两组区间,A和B A中的每个区间由两个正实数{A1start,A1end},{A2start,A2end},…,{Anstart,Anend}描述结束也是Anstart。一段时间内的间隔可能重叠 集合B仅由两个值表示:间隔长度和间隔距离。间隔长度是每个间隔的增量,即bend-Bnstart,并且大于0。间隔距离是任意两个Bnstart之间的距离。B中的间隔不得重叠 我们知道,在任何区间{A1start,Anend}上,A和B中的区间数应该相等 问题是:在{A1start,Anend}的区间

我们有两组区间,A和B

A中的每个区间由两个正实数
{A1start,A1end},{A2start,A2end},…,{Anstart,Anend}
描述<代码>结束也是Anstart。一段时间内的间隔可能重叠

集合B仅由两个值表示:间隔长度和间隔距离。间隔长度是每个间隔的增量,即
bend-Bnstart
,并且大于0。间隔距离是任意两个
Bnstart
之间的距离。B中的间隔不得重叠

我们知道,在任何区间
{A1start,Anend}
上,A和B中的区间数应该相等

问题是:在
{A1start,Anend}
的区间上,我们能连续地将B与A相交吗?i、 e.
B1
必须与
A1
相交,
B2
必须与
A2
相交等。如果任何B与指定A之外的任何其他A相交,则可以

我已经制定了两个算法规则,目前仍然坚持:

  • B规则允许我们计算任何
    {A1start,Anend}
    上的最小和最大间隔数,我们使用它来丢弃A和B中间隔数不相等的情况
  • 如果A中的任何间隙大于B距离,我们将放弃这种情况,因为至少有一个B不会与任何A相交

  • 要使这两个集合连续相交,还必须满足哪些条件?

    您可以这样求解:

    • 通过从所有
      Anstart
      值中减去长度,将A中的所有间隔扩展为间隔长度B。您可以认为A现在定义了B中间隔可以开始的所有有效位置
    • 现在的问题是,是否可以将一系列间隔给定距离的点(B)与一组间隔(a)相交。您可以通过将
      A1
      A2
      偏移量与
      -distance
      相交、
      A3
      偏移量与
      -2distance
      相交来解决此问题<代码>偏移
      -(n-1)距离的
      。如果所有这些间隔的交点均为非空,则A和B可能相交

    请注意,这里没有直接的问题。你到底需要什么帮助?无论如何,这可能是离题的(太宽泛了)。@HenkHolterman补充道,在附加条件下,每个B都有P存在的概率,如果我们不知道没有对应的A,我是否可以假设在解决方案的第二步,而不是通过-(n-1)抵消我可以把所有的距离都分解为B距离,如果这些切碎的部分相交,那么这些集合就真的相交了。我不确定。在存在每个B的概率的情况下,您是否询问交叉口是否有保证(对于存在的每个B组合),或者只是可能(对于至少一个)?第二种情况很简单——假设它们都存在。对于另一种情况,如果给定的B不存在,您是否会跳过它并留下一个空格,然后跳过相应的a?在这种情况下,其余的应匹配相同的。如果你不留下一个空间,就有可能创建一个非交叉点,不是吗,除非所有的a都像B距离时间a计数一样大?也许我没有正确地理解你。这是你描述的第二种情况:如果a B不存在,我们跳过相应的a并留下一个空白。问题是,在这种情况下,我们没有因子,我们应该乘以距离来偏移每个A,从而得到一个交点。