当前位置: 首页 > 面试题库 >

是否有时间间隔包含/排除结束的标准?

段干楚青
2023-03-14
问题内容

我想知道是否存在一种 标准
或“正常”的方式来解释时间间隔数据端点,这些端点涉及定义端点的值的包含性/排他性。但是请注意,我要问的是什么是标准(或最常见的) 公约
(如果有),而不是关于您的个人喜好。如果您真的想提供学位论文,请附上对某人已发布的标准或此问题的标准文本的引用。除非有根本性的缺陷,否则最好使用开放标准(我不必花钱去阅读)。

当然,从A到B的时间间隔有4种可能性:

  1. (A,B)-两端互斥。
  2. [A,B]-两端都包括在内。
  3. [A,B)-包含开始,包含结束
  4. (A,B]-开始是唯一的,结束是唯一的

每个都有不同的特征(如我所见,请指出更多)

[A,B]约定似乎具有不便的属性,即B与整数[A,B]以及[B,C]一起包含。例如,如果B代表午夜边界,并且您正试图确定它属于哪一天,那么这尤其不便。同样,这意味着该间隔的持续时间有些烦人,因为[A,B]其中A
= B的长度应为1,因此[A,B]的持续时间为(B-A) + 1

类似地,(A,B)约定将具有以下困难:B不在(A,B)或(B,C)范围之内…继续用日边界进行类比,午夜将都不是日的一部分。这在逻辑上也是不方便的,因为[A,B],其中A
= B是持续时间小于零的无意义间隔, 但是反转A和B并使其无效

所以我想我想要[A,B]或(A,B],但我不知道如何在它们之间做出决定。

因此,如果有人链接到标准文档,请参考标准文本或类似内容,以阐明约定是非常好的。或者,如果您可以链接或多或少完全不同意的各种标准文档和/或参考,那么我可以选择一个似乎对CMA具有足够权限的文档,并加以完成:)。

最后,我将使用Java进行工作,因此我尤其容易获得在Java中运行良好的答案。


问题答案:

在一般情况下,[A, B)有很多事情要做,而且我看不出任何理由对于时间间隔都不会如此。

Djikstra撰写了一篇不错的文章,为什么编号应该从零开始,尽管这个名字叫零,但大多数都恰好处理这个问题。

优点的简短摘要:

  • end - start 等于列表中的项目数
  • 前一个区间的上限是下一个区间的下限
  • 允许索引从0开始的无符号数字[1]

就个人而言,第二点对于许多问题 非常 有用。考虑一个相当标准的递归函数(在伪python中):

def foo(start, end):
    if end - start == 1:
        # base case
    else:
        middle = start + (end - start) / 2
        foo(start, middle)
        foo(middle, end)

用包含上界的上限编写相同内容会引入很多错误,而一个错误容易产生错误。

[1]与(A, B]-
相比,这是一个优势-从0开始的间隔比在结尾的间隔更常见MAX_VAL。注意,这也涉及到另一个问题:使用两个包含边界意味着我们可以表示一个序列,该序列的长度不能用相同的大小表示。



 类似资料:
  • 我试图解决以下问题:给定N个时间间隔,每个时间间隔指定为(开始,结束),不重叠,根据开始排序——找到一个包含给定日期的时间间隔。例如: 3人进入第一节,15人进入第四节,以此类推。 到目前为止,我有以下基本想法: 我们可以使用二进制搜索来找到相应的间隔(logn) 由于可能只有少数时间间隔较大,其余时间间隔较小,因此根据时间长短对itervals进行排序可能是值得的。然后,在统计上,大多数情况下,

  • 问题内容: 我觉得这是一个简单的概念,但是在包含和排除方面遇到了麻烦:尤其是在随机数生成器方面。 例如,如果我想要一个2-8的值(包括2和8),那将是包含性的,对吗? 那代码看起来如何?像这样:nextInt(8-2)+ 2; ? 问题答案: 例如,如果我想要一个2-8的值(包括2和8),那将是包含性的,对吗? 是的 。包括在内;独占排除。 范围包括7个唯一值(2,3,4,5,6,7,8); 和

  • 问题内容: 一些HTML 1关闭标记是 可选的 ,即: 注意: 不要与 禁止 包含的结束标记混淆,即: 注意: 与HTML不同。xhtml是xml的一种形式,它要求 每个 元素都有一个结束标记。可以在html中 禁止 使用结束标记,而在中则 必须 使用。 是可选的结束标记 理想情况下 包括在内 ,但如果您忘记了它们,我们将接受它们,或者 理想情况下 不 包括在内,但如果您将它们放入,我们会接受 换

  • 间隔有开始和结束时间。间隔可能重叠。可能有几个包含时间t的间隔。只返回其中一个就可以了。 这是一个面试问题。我能够解决这个问题,方法是根据结束对间隔进行排序,根据开始对另一个时间进行排序,并取具有匹配开始和结束的间隔的交点。显然有更多优化的解决方案。 这里有一个例子:[1,5][2,10][3,6][2,9],目标是8。在这种情况下,[2,10]和[2,9]中的任何一个都是正确答案。 我想问题的关

  • 得到的包含我指定的6秒,后跟8或9秒的空音频。我的指挥有问题吗? 编辑: 表示并给我一个文件,从10秒开始有8秒的音频,然后有9或10秒的静默。 我的目标是通过REST API将这个6秒的文件流到前端。我希望用户能够正确下载此文件。理想情况下,它不会有不一致的元数据(14秒而不是6秒)。

  • 有数百万个不重叠的连续间隔,如[a,c]、[c,e]、[e,g)……它们以随机顺序发送给我,我想随时查询是否可以用接收到的这些连续间隔的组合来封闭其他给定间隔。 例如,我希望有一个方法来添加一个连续的间隔,一个方法来测试一个任意的间隔是否可以被之前添加的间隔组合所包围。 类似于 想知道什么是适合这种情况的数据结构? 如果有区别,我们可以假设的边界总是与一些s的边界匹配,因此在上面的示例中,不会有一