Ranges are normally given by the $start and $end -point, no need to create an actual list with a Perl range operator '..' for this task.
> 1) check if the start or the end of each range deviate by more than five
check abs($end[$_]-$start[$_]) >= 5 for 0,1
> 2) check if the intersection of the range is at least half its union
> My problem is I don't understand what they want in (2). Do they refer to the LENGTH of the intersection being at least half the length of the union?
Yes what else?
An intersection is min($end[0],$end[1]) - max($start[0],$start[1]) provided start <= end for both, otherwise flip them. There is no intersection if negative.
The union is similar if there is an intersection.
The rest is left to the reader ;-)
Cheers Rolf
(addicted to the 𐍀𐌴𐍂𐌻 Programming Language :)
Wikisyntax for the Monastery
In reply to Re: union and intersection of ranges
by LanX
in thread union and intersection of ranges
by Anonymous Monk
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |