Sudoku - Récursivité - Nombre de solutions pour une grille
Ci joint une fonction Python récursive qui donne une solution pour une grille de Sudoku.
Cette fonction peut être améliorée, mais là n'est pas le propos.
Le programme s'arrête après avoir trouvé une solution.
Je souhaite :
- compter le nombre de solutions ;
- conserver chaque solution s'il y en a plusieurs.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| def PositionValide(position):
if position == 81:
return True
ligne = position // 9
colonne = position % 9
if (Grille[ligne][colonne]) != 0:
return PositionValide(position + 1)
for nombre in range(0, 10):
if absentDeCase(Grille, nombre, ligne, colonne):
Grille[ligne][colonne] = nombre
if PositionValide(position + 1):
return True
Grille[ligne][colonne] = 0
return False |
Des idées ? Merci