本文介绍了查找数字范围交集的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
找出两个数字范围是否相交的最佳方法是什么?
What is the best way to find out whether two number ranges intersect?
我的数字范围是 3023-7430 ,现在我想测试以下哪个数字范围与之相交:< 3000、3000-6000、6000-8000、8000-10000,> 10000.答案应该是 3000-6000 和 6000-8000 .
My number range is 3023-7430, now I want to test which of the following number ranges intersect with it: <3000, 3000-6000, 6000-8000, 8000-10000, >10000. The answer should be 3000-6000 and 6000-8000.
在任何编程语言中,执行此操作的一种很好的,有效的数学方法是什么?
What's the nice, efficient mathematical way to do this in any programming language?
推荐答案
只是一个伪代码猜测:
Set<Range> determineIntersectedRanges(Range range, Set<Range> setofRangesToTest)
{
Set<Range> results;
foreach (rangeToTest in setofRangesToTest)
do
if (rangeToTest.end <range.start) continue; // skip this one, its below our range
if (rangeToTest.start >range.end) continue; // skip this one, its above our range
results.add(rangeToTest);
done
return results;
}
这篇关于查找数字范围交集的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!