[Math] ny mathematical theory behind sudoku

elementary-number-theoryrecreational-mathematics

In particular I would like to know:

  1. is it possible to say if a sudoku is solvable only having the initial scheme? If yes, what are the condition for which it is solvable?
  2. Given the initial scheme of a solvable sudoku the final solution is always unique?
  3. There exist some simple free codes to solve a sudoku?
  4. Is there any deep mathematical theory behind or connected with a sudoku (some theorem of group theory or number theory) or it is only a simple and pretty game?
  5. What are the smartest means and strategies for solve a sudoku?

I am also interested in the pure mathematics behind my questions, so if you know some article or book in which the sudoku theory is explained, please let me know.

Best Answer

Certainly almost everything you could want to know about the mathematics of sudoku will be at the wiki page entitled "mathematics of sudoku".

The first most famous obvious connection of mathematics to sudoku puzzles is that they are special Latin squares, which have been studied for centuries.

If by "solvable" you mean "can be completed into a valid sudoku solution," then it's obvious there are puzzles which have more than one solution (you could start with just a blank $9\times 9$ grid.) If by solvable you mean "you can complete the sudoku puzzle filling in each square one by one using logic and not guessing," then the question is a little bit more tricky, because one might imagine two logical progressions through the puzzle that lead to distinct valid solutions. (EDIT: However, it looks like you can still reason that any two logical progressions (meaning that each step completely determines the number added) leading to solutions have to agree. )

As commented before, though, the puzzle books usually stick to unique solutions (so that they can provide the correct solution).

There are certainly many free blocks of sudoku solving code for you. In fact Project Euler has a problem dedicated to designing exactly that code. Solutions for this problem are available all over the web.

Related Question