Of all the things I've lost, I miss my mind the most.
- (Mark Twain and me)
Note-1: I dont know the solution for this, though I have some of my own nothing-great solutions for this.
Note-2:I made complete changes to an original problem which I heard to make it simple and elegant.
There are some N fixed-length-bit-sequences(call it word) . You have to split these words into different groups(say max is G groups. N>>G) such that the maximum "difference" between two words is minimized. "difference" is the number of bit positions which differs in the 2 words. How would do u this in an ideal world where speed or memory is not an issue(this is more like a puzzle than an algo problem)? In a realistic world where time/space is an issue(this is algo-type. graphs can come handy or atleast i think)?
Another interesting question(which came to me as I write this) is what if words are being added/deleted. How to group so as to minimize the re-organization of buckets but allowing for an approximate solution initially(say u can have G+g groups). I think this is hard.
Since I cooked-up this one, if something is not clear make ur own "reasonable assumptions".
I would love to hear ur solutions.