gpt4 book ai didi

Perl - 确定几个数字范围的交集

转载 作者:行者123 更新时间:2023-12-01 01:11:30 27 4
gpt4 key购买 nike

我希望能够加载正整数范围的长列表并创建一个新的“摘要”范围列表,该列表是每对范围的交集的并集。而且,我想在 Perl 中执行此操作。例如:

Sample ranges: (1..30) (45..90) (15..34) (92..100)

Intersection of ranges: (15..30)

我唯一能想到的方法是使用一堆嵌套的if语句来确定样本A、样本B、样本C等的起点,并通过这种方式找出重叠,但是不可能用数百个样本来做到这一点,每个样本都包含许多范围。

如有任何建议,我们将不胜感激!

最佳答案

当你需要做某事时,你应该做的第一件事就是看看 CPAN如果有人已经为您解决了您的问题,请查看可用的工具。

Set::IntSpanSet::IntRange位于 CPAN 上“set”结果的第一页。


你要的是每对区间的交集的并集,所以算法如下:

  1. 创建一个空结果集。
  2. 为每个范围创建一个集合。
  3. 对于列表中的每个集合,
    1. 对于列表中的每个后面的集合,
      1. 找到这两组的交集。
      2. 找到结果集和这个交集的并集。这是新的结果集。
  4. 枚举结果集的元素。

关于Perl - 确定几个数字范围的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16341951/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com