Consider this multiple-choice problem:
Which of the following answers is the correct answer to this question?
- None of the below
- All of the below
- All of the above
- One of the above
- None of the above
- None of the above
This is a variation on a common logic problem (see here, for example). The list of possible answers is slightly different here, but the solution is essentially the same: it’s “None of the above”… but I’ll leave it as an exercise to work out which “None of the above” is correct.
As with the similar “whodunit” logic puzzle discussed recently, I think it’s a nice programming exercise to not only solve this particular instance of the puzzle, but to enumerate all possible logic puzzles of this type. That is, using answers of the form “(All | None | One) of the (above | below),” construct all multiple-choice problems that have a unique correct answer.
It turns out there are many different possible puzzles… but they are all one of just two basic forms: the correct answer must be either
- “None of the (above or below),” or else
- A vacuously true “(All or None) of the above” appearing first in the list, or “(All or None) of the below” appearing last in the list.
There is one interesting wrinkle to consider: is it necessary to assume that the problem actually has a unique correct answer? Although this does not affect the two possible forms of the solution described above, requiring this assumption does expand slightly the set of valid puzzles.