Soluciones en Python para el Problema de las Ocho Reinas

Esta página presenta soluciones en Python para el problema de las ocho reinas. Encontrarás código, explicaciones y una salida de ejemplo para ayudarte a entender e implementar la solución.

Soluciones en Python para el problema de las ocho reinas

Código Python para el Problema de las Ocho Reinas

def solve_nqueens(n):
    solutions = []
    board = []
    def is_safe(row, col):
        for r, c in enumerate(board):
            if c == col or abs(row - r) == abs(col - c):
                return False
        return True
    def backtrack(row=0):
        if row == n:
            solutions.append(list(board))
            return
        for col in range(n):
            if is_safe(row, col):
                board.append(col)
                backtrack(row + 1)
                board.pop()
    backtrack()
    return solutions

for sol in solve_nqueens(8):
    print(sol)

Salida de Ejemplo

[0, 4, 7, 5, 2, 6, 1, 3]
[0, 5, 7, 2, 6, 3, 1, 4]
[0, 6, 3, 5, 7, 1, 4, 2]
... (total 92 soluciones)

Explicación

Cada solución es una lista de índices de columna para cada fila. Por ejemplo, [0, 4, 7, 5, 2, 6, 1, 3] significa que la reina en la fila 0 está en la columna 0, la de la fila 1 en la columna 4, y así sucesivamente. Esta representación compacta facilita el procesamiento y la visualización de las soluciones de forma programática.

Preguntas Frecuentes

¿Cuál es la solución en Python para el problema de las ocho reinas?

Una solución en Python utiliza recursión y retroceso (backtracking) para encontrar todas las disposiciones válidas de las reinas en el tablero.

¿Puedo ver la salida del problema de las ocho reinas en Python?

Sí, esta página muestra una salida de ejemplo para el problema de las ocho reinas usando código Python.

Ver la explicación del código Python →