From: tr.17687@z991.linuxsc.com   
      
   Ben Bacarisse writes:   
      
   > Tim Rentsch writes:   
   >   
   >> I think this problem would make a good interview question,   
   >> provided care were taken to phrase it so the subtleties were   
   >> still there, but possible points of confusion were reduced.   
   >> Not that I know how to do that... :)   
   >   
   > I didn't make a good job of presenting it. It certainly didn't   
   > pique anyone else's interest, but then comp.programming is not   
   > well populated.   
      
   I think part of the problem is that the question looks "easier"   
   than it really is. People have an initial reaction (certainly I   
   know I did) but don't continue to think through what the issues   
   might be.   
      
   For what it's worth, here is a stab at presenting the problem.   
   It's longer than I would like it to be, but maybe it will be   
   helpful.   
      
   We are interested in writing a function to answer a more general   
   version of the example problem stated below.   
      
   Consider a plane flying easterly (and for simplicity, directly   
   above the equator). We measure the plane's progress by its   
   longitude, measured to the nearest second of arc (1/3600 of a   
   degree), so from -180 degrees to 179 degrees 59 minutes 59   
   seconds (or equivalently from -648000 seconds to 647999 seconds).   
   We would like to know if a given longitude is between the plane's   
   starting longitude and ending longitude. (Note that the   
   longitude measurements below are given in degrees, minutes, and   
   seconds, but we may assume that internally they are represented   
   as an integer number of seconds.)   
      
   For example, if the plane flies   
      
    from Los Angeles, US (longitude -118 14' 37")   
    to New York, US (longitude -73 56' 7")   
      
   does it cross over the longitude lines of   
      
    Denver, US (longitude -104 59' 30"), or   
    Moscow, Russia (longitude 37 37' 6")?   
      
   Answer: the plane does cross the longitude line of Denver but not   
   that of Moscow.   
      
   Similarly, if the plane flies   
      
    from Beijing, China (longitude 116 23' 0")   
    to Los Angeles, US (longitude -118 14' 37")   
      
   does it cross over   
      
    Tokyo, Japan (longitude 139 50' 32"),   
    Waikiki, Hawaii, US (longitude -157 50' 4"), or   
    Moscow, Russia (longitude 37 37' 6")?   
      
   Answer: the plane does cross the longitude lines of Tokyo and   
   Waikiki but not that of Moscow.   
      
   For the general case we would like to handle any circular measure   
   (for convenience having coordinates in some integer range).   
      
   Exercise: write a function to answer this kind of question for   
   circular measures in general. You may assume integer coordinates   
   and intervals that include the starting point but do not include   
   the end point. Give a suitable declaration for the function,   
   and separately give a function definition to implement the given   
   interface.   
      
   --- SoupGate-Win32 v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   
|