Sudoku Program Solutions (Solvers)
For computer programmers it is relatively simple to build a brute force
search. Typically this would assign a value (say, 1, or the nearest
available number to 1) to the first available square (say, the top left
hand corner) and then move on to assign the next available value (say,
2) to the next available square. This continues until a duplication
is discovered in which case the next alternative value is placed in
the last field changed. This isn't remotely computationally efficient,
but it will work. A more efficient program could keep track of potential
values for cells, eliminating impossible values until only one value
remains for a cell, then filling that cell in and using that information
for more eliminations, and so on until the puzzle is solved. This more
closely emulates the way a human would solve the puzzle without resorting
to trial and error, but coding the search for impossibilities based
on contingencies and even multiple contingencies (as would be required
for the hardest of Sudoku) is a daunting task.