|
|
|
|
|
by tsm
1306 days ago
|
|
I have no idea how they actually work, but if I were asked to design one: • Choose some reasonable number of questions of the form "Is it ___"?. Let's say 256 • Come up with a list of objects, and for each one give it a 256-long bitvector encoding its answers to the questions • Maintain a set (implemented as another bitvector) of the potential items. Figure out which question would divide the set in two most closely; ask that question. I am the opposite of a hardware hacker or systems programmer, but it seems like this is algorithmically straightforward to implement with bit-twiddling. |
|
Actually programming the logic once you know it is the easy bit, it's constructing the dataset of answers and questions in the first place.