Cần giải thích cơ chế hoạt động của lệnh Try(i+1, n) trong code đệ quy quay lui

#include<iostream>
#include<cmath>
	// gia su co quan hau dat tai vi tri (x1,y1), ta muon dat them con hau ke tiep
	// tai vi tri (x2,y2), lam the nao ?
using namespace std;
int a[8] ; // luu vet chuong trinh

bool OK(int x2, int y2 ){ // k tra vi tri (x2, y2) co dat dc queen ?
	for(int i = 1; i< x2; i++ )
		//a[i] == y2 => columns are same
		//|i - x2| == |a[i] - y2| => in diagonals.
		if(a[i] == y2|| abs(i-x2) == abs(a[i] - y2) ) return false;
	return true;
}

void xuat(int n ){
	for(int i=1; i<= n; i++ )
        cout<<" " <<a[i];
	cout<< endl;
}

void Try(int i, int n ){
	for(int j = 1; j<= n; j++ )
		if(OK(i,j)) // queen tai vi tri hang i dat vao cot thu j
		{
			a[i] = j;
			if(i==n)
                xuat(n);
			Try(i+1,n);
		}
}

int main(){
	int n = 8;
	Try(1,n);
	return 0;
}

mn cho mình hỏi sao khi gọi hàm Try(i+1,n) thì nó in được như trong ảnh vậy.mình biết nó là quay lui nhưng vần không hiểu cơ chế của nó lắm.mn giải thích giúp mình được không ạ.
đây là bài 8 con hậu ạ.
thanks

all

Bạn tìm thuật toán 8 hậu trên google, hoặc học lại cơ bản về backtracking.

bạn cài visual studio xong bật debug lên nhé

Nên hiểu là tìm cấu hình đúng với yêu cầu. Lựa chọn ở bước này sẽ phụ thuộc vào những lựa chọn ở bước trước, chứ không đợi đến xong rồi mới thử (một số ít bài với dãy nhị phân có màn này).

Sau khi một hàm (callee) chạy thì nó rút stack và quay về hàm caller.

mình đã đọc backtracking nhưng thật sự là không hiểu nổi nên ms nhờ mọi nhười giải thích hộ ak.ai hiểu rõ giải thích hộ mình với

cho mình hỏi sao m sau khi debug trong hàm try.gọi tới hàm try(i+1,n)thì nó lại in được như trong ảnh vậy.mình thật sự đọc rất nhiều lần r nhưng vần không hiểu được.r sao m mình debug trong hàm try,nó chỉ chạy qua vòng for có đúng 1 lần nhưng nó lại có thể in được vậy.mình muốn hỏi 2 ý như thế thôi

Mình để breakpoint vào dòng 2 của Try() thì nó vẫn chạy đủ i mà.

không lệnh for trong hàm Try() ak #rogp10

Vòng for đó duyệt các ô (i, j) để tìm khả năng đặt con hậu ở hàng i.

Đọc lại về thuật toán N-hậu:

83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?