Sunday 23 April 2006

This past December, I was given a book of Sudoku puzzles, and it consumed a significant chunk of my spare time. The puzzles are addictive, partly because at a certain difficulty level, they are easy to start, and then hard to finish. So once I finally completed a puzzle, my eye would move on to the next, and I'd see a number to scribble in, and then I had to finish that puzzle, and the cycle would continue.

Andrew Stuart has an extensive and detailed list of Sudoku strategies: Advanced Sudoku Strategies. Some of these are so complicated, I can't quite imagine being able to put them into practice in the wild, but it is fascinating to see how elaborate the solving technique can become.

BTW: I can't understand why everyone uses the classic marking technique of writing teeny numerals indicating what a cell could be. Much easier in a number of ways is the dot technique (illustrated in the Sudoku entry at Wikipedia) whereby a dot in a cell indicates what number it cannot be. The placement of the dot indicates its numeral. The dots are easier to enter than tiny numbers, and as more constraints are discovered (that is, as you progress toward the solution), you write more dots, rather than erase numbers. If no mistakes are made, and you don't mind writing the answer numeral over existing dots, you never need to erase. Also, sometimes single-number constraints are discovered quite early in the solving process. A dot can be made to indicate this, while you'd never write seven or eight tiny numerals to remember which numbers are left as possibilities. I don't get why the nine-dot marking technique isn't more popular.

Paul 9:25 AM on 23 Apr 2006

Hmm. Try studying Stuart's methods without penciling in numbers. That stuff is hard enough to understand without another layer of abstraction.

At least that's my gut impression. I think I'll try out the dot method and see how I like it.

David Chen 1:45 PM on 23 Apr 2006

Wow, that's pretty cool. I came up with a dot system by myself and thought I was pretty clever =p But I still placed them where I thought the numbers should go, rather than where they shouldn't, necessitating erasure. I'll definitely try putting dots where the numbers shouldn't go instead.

I agree with Paul, though; I think it's just because it it's another layer of abstraction that many people don't feel like dealing with. Programmers, on the other hand, are used to dealing with many layers of abstraction ;)

Marko Samastur 7:39 AM on 24 Apr 2006

Well, some of us didn't know this technique.