I see quite a few posts around solving sudoku algorithmically in various languages. I used to do them the old fashioned way, but sudoku are in my opinion a worthless activity, barely qualifying as a puzzle. They aren't difficult to solve, and the ones that are, are just an test of your threshold for carrying out mundane repetitive tasks - the perfect job for a computer!
It was the early 21st century when Sudoku arrived on UK shores. Every national newspaper was worth nothing unless it had a new sudoku or three buried inside its pages, and having a long-term affinity with numbers and grid-based organisation, I was in!
I'd scribble those 20 lines on a scrap of paper or in a notepad and fill in the pre-determined numbers
Then it was just a matter of seeing which numbers were missing from each row, each column and each square until the job was done.
Efficiency drive
So, having a laser printer to hand, the first, most obvious efficiency I could make was printing out grids in advance. I could get six on a single sheet of A4, and using some DTP software I could draw quality lines of different thicknesses, just like the real thing:
All I needed to do was copy the numbers from the paper (or website more likely) and I was on my way to another hit of "aren't I clever?"
I'm not sure how long any of these stages lasted, it was a long time ago, but shortly thereafter I made a further efficiency in my pre-printed grid. At the top of every square I added the numbers 1 to 9:
These represented every number that could possibly be the correct one for the box in which it was contained. All I had to do was cross out the ones which were definitely ruled out by existing numbers in the grid, and if I ever crossed out 8 of the 9 numbers then I knew the answer was the one remaining, and that would mean it was possible to scratch off up to 19 other numbers from the same row, column or square resulting in a potential cascade of number filling. Oftimes I'd end up with pairs of the same numbers in the same row. That meant I could cross those numbers off from any of the other boxes in the same row (or square or column - you get the idea
That was it, that's all there was to it. Cross the numbers off and it would practically solve itself. There was no skill involved, no great intelligence required, nothing could go wrong...
...except with the 'hard' or 'fiendish' sudoku, you'd eventually reach an impasse. It wasn't possible to complete the puzzle entirely, too many ambiguities remained. Reading on the internet abut how to solve these, you'll come across "Ariadne's Thread". That's how you solve these hard puzzles, using an ancient technique from folklore (or something), you would insert one of the two possibilities in a given square and play it out to resolution, except if it didn't work you'd just wind back "the thread" and try again using the other possibility.
What? That's it? That's trial and error. Any schmuck can use trial and error to solve it. Sure, there might be several junctions along the way to the solution where you were required to branch the thread again and keep going but that's all it boils down to. This is no proof of a higher intelligence, beyond perhaps being able to do a few steps along the thread in your head and perhaps realising you needed to choose the other option. All that's required is a pencil eraser or more grids of paper to start back at the previous crossroads.
It was, needless to say, at this point that I realised I was basically just carrying out a manual computer algorithm of elimination and guesswork. I wasn't exercising my brain. It wasn't much more challenging than a word-search, and I'd given up on those when I was about 11. Utterly pointless. I stopped doing sudoku immediately.
The fact that they are solvable at all using simple computer algorithms, means they aren't worth artificially taxing your human mind with. They're compiled by computers for computers.
Top comments (0)