Bryan R Harris wrote at Thu, 30 May 2002 01:58:19 +0200:
> I'm trying to come up with an algorithm that seems like it ought to be really easy, >but it's > turning out to be pretty tough... > > Basically I have three pairs of start/stop times, e.g.: > > 3, 5 > 4, 10 > 15, 20 > > I want the total time covered by all these ranges. I can't just say (5-3 + 10-4 + >20-15) because > the 3,5 and 4,10 ranges overlap. The desired answer for this case is 13, 3 to 10 >and 15 to 20. Sorry, but 3 to 10 are 3,4,5,6,7,8,9,10 = 8 times and 15 to 20 are 15,16,17,18,19,20 = 6 times. So the answer should be 8+6 = 14, shouldn't ? > I > have the start times in two arrays, @starts and @stops. > > I have to do this probably a million+ times. Any ideas on how I could go about this? > Of course, the solutions of Beau and Felix are good, TMTWTDI, heres are very readable solution (but perhaps very memory reluctant :-( ) my %timings; $timings{$_}++ for (3 .. 5, 4 .. 10, 15 .. 20); my $total_time = scalar values %timings; Greetings, Janek -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]