This blog from benjamincongdon.me is really interesting.
It demonstrates how to build a Miracle Sudoku solver using Prolog, which is a logic programming language written in a declarative syntax. It’s incredible how concisely a solver for Sudoku puzzles can be written in that language!
What’s remarkable about these solvers is how they can tell you interesting facts about puzzles such as the Miracle Sudoku:
- The minimal number of hints necessary to uniquely define a solution board is 2.
- Boards with just 1 placed hint have 8 solutions, always – no matter which digit the hint is or where it’s placed.
- There are many, many valid 2-digit hints. For example, there are 2320 ways to place a
1 and a
2 on the board which lead to a unique solution. Since there are only 72 unique solution boards, you’d run out of interesting solutions before you ran out of hints.
For about an hour on Tuesday night, Citibank customers trying to phone the company were met with the same odd message in place of a polite automated service operator: “Hello world. Weasels have eaten our phone system.”
I think the best part is the reasoning why. Open source software, a dedicated contributor from 15 years ago paying to record joke messages, and a large company using something for free and being “bitten” by this joke/bug. It hits all the right notes for me.