P is for Practical PerlMonks

### (tye)Re2: (Golf) Nearest Neighbors

by tye (Sage)
 on Apr 04, 2001 at 23:20 UTC ( #69818=note: print w/replies, xml ) Need Help??

in reply to Re: (tye)Re: (Golf) Nearest Neighbors

Just following the (ambiguous) specification. Are you looking for numbers from (5,11) that are close to 1 or numbers from (1,5) that are close to 11? I didn't find an API spec and found others using pop so I went ahead with the 2-character savings.

Or am I only supposed to return one number if the "two closest" are both on "the same side" of the search-for number? That wasn't clear to me either so I just went with "return the two closest" without trying to assume a bunch of extra subtle meaning to that phrase. No, I'm not going to produce a version that sometimes returns only one number. (:

- tye (but my friends call me "Tye")

Replies are listed 'Best First'.
Re (tilly) 4: (Golf) Nearest Neighbors
by tilly (Archbishop) on Apr 05, 2001 at 00:00 UTC
I think the "search-for" number is a misunderstanding on your part. We are not looking for the number that is closest to the first. We are looking for the pair of numbers, out of all n choose 2 pairs, which are closest together.

So given (1, 5, 7) it would return (5, 7) (or (7, 5)) while (1, 5, 11) would return (1, 5). And you cannot assume that it is presented in increasing order.

Re: (tye)Re2: (Golf) Nearest Neighbors
by MeowChow (Vicar) on Apr 04, 2001 at 23:26 UTC
Any solution which returns a pair of numbers that are in the list and represent a minimal distance from each other with respect to all other possible pairings is correct. We are comparing the distance between all possible number pairings, and returning a minimal one. So the following are all correct:
```nn(1,5,9,15) returns (1,5)
# or
nn(1,5,9,15) returns (5,9)
# or
nn(1,5,9,15) returns (9,5)
I don't really understand the beginning of your question though.
```   MeowChow
s aamecha.s a..a\u\$&owag.print```

Ah! That's different!

The specification is simple: given a list of numbers, return the two which are nearest to one-another

I didn't parse the "one-" part (in my lame defense, my current window width wrapped the line right after the "-") so I was thinking you wanted the two numbers from a list closest to some other number not on the list.

So just ignore me. (:

- tye (but my friends call me "Tye")
```/ignore tye

Create A New User
Node Status?
node history
Node Type: note [id://69818]
help
Chatterbox?
and all is quiet...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (4)
As of 2018-05-24 02:52 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?
World peace can best be achieved by:

Results (174 votes). Check out past polls.

Notices?