|
Written by Administrator
|
|
Saturday, 08 March 2008 10:05 |
|
Le problème des reines consiste à placer n reines sur un échiquier nxn de telle sorte qu'aucune reine ne soit en prise : il ne faut donc pas plus d'une reine par ligne, par colonne et par diagonale. Voici un exemple de solution pour n=8 : On peut trouver les solutions du problème des reines en explorant récursivement l'espace des configurations possibles des reines. Le but de l'exercice sera de compter le nombre de solutions du problème des reines pour un n donné (1 pour n=1, 0 pour n=2, 92 pour n=8, jusqu'où pouvez-vous aller ?). L'algorithme consiste à placer une reine dans chaque colonne, en maintenant dans trois tableaux booléens les contraintes générées par le placement des reines : un tableau indique pour chaque ligne si elle est déjà prise, un autre pour chaque diagonale montante et le troisième pour chaque diagonale descendante. Pour la mise au point du programme, on pourra ajouter un tableau pour stocker la solution en cours de construction. Il n'y a qu'une fonction récursive à écrire. Elle prend en argument le numéro i de la colonne à explorer, ainsi que les trois tableaux. Elle retourne le nombre de solutions possibles avec les reines placées telles qu'elles le sont dans les colonnes 0 à i-1.
|