Re: [PHP] Finding if a number is in the range
On Friday 18 May 2001 06:16, MaD dUCK wrote: also sprach Zak Greant (on Thu, 17 May 2001 09:35:18PM -0600): Or just use a simple chain of if statements :) yeah, but that's so O(n) ! i can do in O(lg n) or, given n CREW processors, in O(1) time! yes, i have just finished my computational theory and computer algorithms honors exam. Well, then you *do* know that O(log n) can be slower than O(n), right? :) For a small number of ranges the chained ifs are most likely faster... -- Christian Reiniger LGDC Webmaster (http://sunsite.dk/lgdc/) (A)bort (R)etry (P)retend this never happened ... -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
Re: [PHP] Finding if a number is in the range
also sprach Joseph Blythe (on Fri, 18 May 2001 02:29:40PM +0930): I give these ideas a go unfortunately the ranges are not contiguous, they are all over the place. so you make new ranges to fill spaces and associate a bool with each... or you check them linearly... martin; (greetings from the heart of the sun.) \ echo mailto: !#^.*|tr * mailto:; net@madduck -- for art to exist, for any sort of aesthetic activity or perception to exist, a certain physiological precondition is indispensable: intoxication. -- friedrich nietzsche -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
Re: [PHP] Finding if a number is in the range
also sprach Zak Greant (on Thu, 17 May 2001 11:50:35PM -0600): Do you really need a chainsaw to cut a piece of cake? ;) hehe. depends. and come on, i simultaneously have a point and am joking... martin; (greetings from the heart of the sun.) \ echo mailto: !#^.*|tr * mailto:; net@madduck -- fermentation fault. coors dumped. -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
Re: [PHP] Finding if a number is in the range
also sprach Joseph Blythe (on Fri, 18 May 2001 11:12:23AM +0930): How do I find if a number is in a range example: assuming that the ranges are continuous, make an array of the first number for each range and then implement a custom binary search for O(lg n) performance. martin; (greetings from the heart of the sun.) \ echo mailto: !#^.*|tr * mailto:; net@madduck -- i wish there was a knob on the tv to turn up the intelligence. there's a knob called 'brightness', but it doesn't seem to work. -- gallagher -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
Re: [PHP] Finding if a number is in the range
Or just use a simple chain of if statements :) if ($num = 200 $num = 299) { echo $num is between 200 and 299; } else if ($num =1000 $num = 2263) { echo $num is between 1000 and 2263; } else if ($num =2264 $num = 2499) { echo $num is between 2264 and 2499; } else { echo $num is not between 200 and 299, 1000 and 2263 or 2264 and 2499; } If you have a large number of these to do, you could store your upper and lower bounds in an array and use a loop to process the bounds. ie. // set up our bounds $bounds = array ( -10, -1, 0, 199, 200, 299, 1000, 2263, 2264, 2499 ); // make sure that we have a matched sets of bounds // the bounds array should have at least 2 elements // and the remainer (modulus) of $count / 2 should be 0 $count = count ($bounds); $count 1 AND 0 === ($count % 2) OR die ('The $bounds array must contain one or more matched elements.'); for ($index = 0; $index $count; $index += 2) { if ($number = $bounds[$index] $number = $bounds[$index + 1]) { $between = sprintf (%s is between %s and %s., $number, $bounds[$index], $bounds[$index + 1]); break; } } if (isset ($between)) { echo $between; } else { // join the bounds into a string separated by .. $bounds = join ('..', $bounds); // convert every second set of .. to br $bounds = ereg_replace ('([^.]+\.\.[^.]+)\.\.', '\1br', $bounds); echo Number $number not found with any of the specified ranges:blockquote$bounds/blockquote; } --zak - Original Message - From: MaD dUCK [EMAIL PROTECTED] To: Joseph Blythe [EMAIL PROTECTED] Cc: [EMAIL PROTECTED] Sent: Thursday, May 17, 2001 7:53 PM Subject: Re: [PHP] Finding if a number is in the range also sprach Joseph Blythe (on Fri, 18 May 2001 11:12:23AM +0930): How do I find if a number is in a range example: assuming that the ranges are continuous, make an array of the first number for each range and then implement a custom binary search for O(lg n) performance. martin; (greetings from the heart of the sun.) \ echo mailto: !#^.*|tr * mailto:; net@madduck -- i wish there was a knob on the tv to turn up the intelligence. there's a knob called 'brightness', but it doesn't seem to work. -- gallagher -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED] -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
Re: [PHP] Finding if a number is in the range
also sprach Zak Greant (on Thu, 17 May 2001 09:35:18PM -0600): Or just use a simple chain of if statements :) yeah, but that's so O(n) ! i can do in O(lg n) or, given n CREW processors, in O(1) time! yes, i have just finished my computational theory and computer algorithms honors exam. martin; (greetings from the heart of the sun.) \ echo mailto: !#^.*|tr * mailto:; net@madduck -- si vis pacem, para bellum -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
Re: [PHP] Finding if a number is in the range
MaD dUCK wrote: also sprach Zak Greant (on Thu, 17 May 2001 09:35:18PM -0600): Or just use a simple chain of if statements :) yeah, but that's so O(n) ! i can do in O(lg n) or, given n CREW processors, in O(1) time! yes, i have just finished my computational theory and computer algorithms honors exam. Smarty Pants :-) I give these ideas a go unfortunately the ranges are not contiguous, they are all over the place. Thanks. Joseph -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]
Re: [PHP] Finding if a number is in the range
MaD dUCK wrote: also sprach Zak Greant (on Thu, 17 May 2001 09:35:18PM -0600): Or just use a simple chain of if statements :) yeah, but that's so O(n) ! i can do in O(lg n) or, given n CREW processors, in O(1) time! yes, i have just finished my computational theory and computer algorithms honors exam. Do you really need a chainsaw to cut a piece of cake? ;) --zak -- PHP General Mailing List (http://www.php.net/) To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] To contact the list administrators, e-mail: [EMAIL PROTECTED]