나는 n-queen 백 트래커를 연구 중입니다. 누군가가 내게 어떻게 설명 할 수 있습니까 other_row_pos
대각선을 확인합니까? 나는 그것이 왜 작동하는지, 어떻게 작동하는지 잘 모르겠습니다. 위키 찍은n-queens의 대각선은 어떻게 테스트합니까?
-http://en.wikibooks.org/wiki/Algorithm_Implementation/Miscellaneous/N-Queens :
bool isSafe(int queen_number, int row_position) {
// Check each queen before this one
for(int i=0; i<queen_number; i++) {
// Get another queen's row_position
int other_row_pos = position[i];
// Now check if they're in the same row or diagonals
if(other_row_pos == row_position || // Same row
other_row_pos == row_position - (queen_number-i) || // Same diagonal
other_row_pos == row_position + (queen_number-i)) // Same diagonal
return false;
}
return true;
}
대각선은 기울기가 ± 1.0 ... –
입니다. 새 여왕이 다른 여왕을 공격하지 않고 위치에 삽입 될 수 있는지 확인합니다. –
제공된 링크에서 할당 취소를 수행 할 방법이 없다고 나타났습니다. 위치 [i]? 이 코드에서 백 추적기는 어디에 있습니까? – runners3431