100 brown-eyed and 100 blue-eyed perfect logicians live on an island, but none knows the color of their own eyes. There are no mirrors on the island, and communicating is forbidden. If any of them works out the color of their eyes, they must leave the island in the night.
One day a visitor comes to the island and says, "I see at least one person with blue eyes". What happens next? The surprising result is that nothing happens for a hundred days, then all the blue-eyed people leave, and the next night all the brown-eyed people leave.
This is a fun example of a riddle with a counter-intuitive solution, which can be demonstrated inductively. But like many similar riddles, different people will approach it in different ways.
What's interesting to me about it is that programmers and mathematicians will typically accept the (contrived) scenario unquestioningly, and get to work solving it as the riddler intended, whereas other people will spend a long time questioning details intended to be irrelevant.
Could someone see a reflection of their eyes in some water? Could some of them work out their eye color from genetics? Why do they have to leave in the night, and what if they don't? What if one of them makes a mistake?

These questions all miss the intent.
The mathematically-minded have learned, through practical experience, to ignore those details. This is certainly a skill, and a useful one for anyone writing code for a living.
But the same people can have a tendency to apply these abstraction skills to real-life scenarios, as if they were contrived by a puzzle-setter; with great swathes of detail disregarded as irrelevant, and moral equivalence established between ostensibly quite different situations.
I think it's unfortunate that something that is a useful skill for reasoning in some contexts may be so detrimental to reasoning in some other contexts, and as a programmer, I sometimes wish that my own zeal to snap to some perceived essence of a problem wasn't so strong.
You can follow @propensive.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: