**The science behind Sudoku...**

Sudoku is a logic puzzle that has become a worldwide phenomenon in the last few years: but where has it come from? How does it work? And what is the science behind sudoku – what are the rules for generating and solving grids?

Answers to all of these questions can be found in the A-Z of Sudoku. As its title suggests, this book provides a “one stop shop” on sudoku, covering the history of the puzzle, its development and growth in the world’s media, before moving on to the mathematics of sudoku and various techniques that can be used to solve grids by hand.

Next, the essentials of software development relating to sudoku are presented along with the recent branch of computer science devoted to solving such problems: constraint programming, showing how the principle behind solving sudoku grids can be used in other contexts. Finally, the book concludes with a large number of grids ranging in difficulty from “very easy” to “expert” which the reader can use to apply the techniques they have acquired from the book in a practical context.

Those interested in finding out more about the theory behind sudoku, its origins, it applications in other fields and (of course) how to improve their ability to solve it will find this book a must-read.

This book is illustrated on line with a sudoku game applet illustrating rules and techniques developped in the book and providing an online help for solving sudoku grids.

Notice that this applet has been developed with the choco constraint solver.

Some samples:

- the table of contents [pdf, 123ko]
- the chapter 3 on advanced techniques [pdf, 220ko]
- some sample sudoku grids [pdf, 181ko]

This book can be ordered from the publisher ISTE (Hermes/Lavoisier).

**Erratum**

- page 18 : 6.27 \times 10^21 => 6.67 \times 10^21
- page 22 : in the condition part of 2.2, what({(i, j)} => what({(i, j)})
- page 25 : Cell (4,2) is in block B_5. Therefore b_{4,2} = 5. => Cell (4,2) is in block B_4. Therefore b_{4,2} = 4.
- page 32 : two contiguous blocks => two blocks that share at least one direction