Algorithmus des N-queens

Algorithm NQueens ( k, n) //Prints all Solution to the n-queens problem
{
    for i := 1 to n do
    {
        if Place (k, i) then
        {
            x[k] := i;
            if ( k = n) then write ( x [1 : n]
            else NQueens ( k+1, n);
        }
    }
}

Algorithm Place (k, i)
{
    for j := 1 to k-1 do
        if (( x[ j ] = //in the same column
           or (Abs( x [ j ] - i) =Abs ( j – k ))) //or in the same diagonal
        then return false;
        return true;
}

Dem obigen code ist für die Lösung des N-Damen-problem mit backtracking.Ich denke, dass es kann legen die ersten 2 queens von zwei Zeilen in den jeweiligen Spalten und dann, wenn es um die 3. Zeile Königin kann es nicht aufgestellt werden, da keine Königin muss angreifen, und es wird einfach die Ausfahrt vom Algorithmus N queens...Also, wie ist dieser Algorithmus implementiert backtracking?

InformationsquelleAutor user2967440 | 2013-11-15

Schreibe einen Kommentar