If you can find 20 questions so that each question roughly halves the sample size depending on the answer, you can halve a big set of people 20 times, thus yielding a set of size 2^20 = 1 048 576 times smaller than the original.<p>So if you take a set of people of size 1 million and ask the right 20 yes/no questions you can almost always figure out the right person. Of course, the more questions you ask, the finer the result (with 30 questions it's 1 billion). Also, these questions don't have to be binary, thus they can cut a set in e.g. 1/5, not half.<p>Of course with real world questions this is much harder to do, but with a clever question selecting algorithm it could be done this way, I suspect.
I suspect it's implemented using decision trees.<p><a href="http://en.wikipedia.org/wiki/Decision_tree" rel="nofollow">http://en.wikipedia.org/wiki/Decision_tree</a>
This "Guess the Dictator" game was a hit years ago, <a href="http://www.smalltime.com/Dictator" rel="nofollow">http://www.smalltime.com/Dictator</a>. It's pretty much the same thing and they're lots of fun. <a href="http://hunch.com" rel="nofollow">http://hunch.com</a> is leveraging this type of decision tree learning nicely today.
Something similar to Twenty Questions? <a href="http://en.wikipedia.org/wiki/Twenty_Questions" rel="nofollow">http://en.wikipedia.org/wiki/Twenty_Questions</a>
I know it is old, but no-one has hit on exactly what is happening. It is decision trees, and it does make use of the winnowing effect of true-false questions. The last ingredient is user feedback. If it cannot correctly guess your character, it asks you to enter them. It then saves your person and the decision tree that got you to them for future use: croudsourcing.
I got it confused on Gorodish -- it offered Jean Valjean, which is a good approximation, and afterwards Quasimodo, which isn't really. But afterwards it got all correct.