Menu
CoddyTech

N-Queens II

DifficileRetour sur tracepython iconjava iconcpp iconc iconjs icon+10

Une reine attaque toutes les cases de sa ligne, de sa colonne et de ses deux diagonales, quelle que soit leur distance. Étant donné un entier n, renvoie le nombre de façons de placer n reines sur un plateau de n × n de sorte qu’aucune paire de reines ne s’attaque.

Les plateaux qui diffèrent sur une case sont comptés séparément, y compris les images miroir.

Fonction

totalNQueens(n: integer) → integer
ninteger
la taille du plateau et le nombre de reines
Renvoieinteger
le nombre de façons de placer les reines de sorte qu’aucune n’en attaque une autre

Contraintes

  • 1 ≤ n ≤ 12
  • La réponse pour n = 12 est 14,200, donc elle tient dans un entier 32 bits.

Exemples

Entrée
n = 4
Sortie
2
Explication
En écrivant la colonne de la reine de chaque ligne de haut en bas, les échiquiers sont 1, 3, 0, 2 et 2, 0, 3, 1 : des images miroir, comptées comme deux solutions. Tout autre choix place deux reines dans une même colonne ou sur une même diagonale.
challenge icon

Pour aller plus loin

Peux-tu compter uniquement les échiquiers qui restent différents après avoir fait pivoter et reflété l’échiquier ? Pour n = 8, les 92 échiquiers se répartissent en 12 groupes de ce type.

Réinitialiser le code
def totalNQueens(n):
    # Écrivez le code ici

Test #1

Test #2

Argument

n = 4

Résultat attendu

2