Em với thằng bạn cãi nhau bài toán 8 Hậu : đặt 8 con hậu lên bàn cờ vua sao cho chúng không ăn nhau.
Phương pháp, Quay lui như sau :
B1:đặt con hậu thứ i lên hàng thứ i , cột thứ j của bàn cờ, xong rồi đánh dấu là cột j không được đặt con hậu nào lên nữa.
B2: tiếp tục đặt con hậu thứ i 1 lên hàng i 1, với điều kiện là đặt vô một cột nào mà chưa có con hậu trước đó.
Độ phức tạp : lí luận 1 : bài này giống bài mã đi tuần, mỗi lần là phải tìm cách đặt lên 8 cột của 1 hàng nào đó : O(8^n) ( n= 8 con hậu ).
lí luận 2 : mỗi lần đặt 1 con hậu là mất đi 1 cột trên bàn cờ vậy lần 1 đặt con hậu : chọn vị trí trên 8 cột, lần 2 : chọn trên 7 cột ... lần thứ 8 : còn 1 cột.
vậy T(n)=(8-i)*T(n-i) C; với T(0)=1; i chạy từ 0 tới 8; độ phức tạp O(n!).
Cái nào đúng vậy mọi người ?
Phương pháp, Quay lui như sau :
B1:đặt con hậu thứ i lên hàng thứ i , cột thứ j của bàn cờ, xong rồi đánh dấu là cột j không được đặt con hậu nào lên nữa.
B2: tiếp tục đặt con hậu thứ i 1 lên hàng i 1, với điều kiện là đặt vô một cột nào mà chưa có con hậu trước đó.
Độ phức tạp : lí luận 1 : bài này giống bài mã đi tuần, mỗi lần là phải tìm cách đặt lên 8 cột của 1 hàng nào đó : O(8^n) ( n= 8 con hậu ).
lí luận 2 : mỗi lần đặt 1 con hậu là mất đi 1 cột trên bàn cờ vậy lần 1 đặt con hậu : chọn vị trí trên 8 cột, lần 2 : chọn trên 7 cột ... lần thứ 8 : còn 1 cột.
vậy T(n)=(8-i)*T(n-i) C; với T(0)=1; i chạy từ 0 tới 8; độ phức tạp O(n!).
Cái nào đúng vậy mọi người ?
Comment