You are on page 1of 15

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI
KHOA CÔNG NGHỆ THÔNG TIN

BÀI TẬP LỚP
MÔN: TÍNH TOÁN MỀM
BÀI TOÁN XẾP TÁM QUÂN HẬU TRÊN BÀN CƠ

GIẢNG VIÊN HƯỚNG DẪN:
NHÓM SINH VIÊN THỰC HIỆN:
NGUYỄN VĂN TỚI
HOÀNG THANH TRỌNG
NGUYỄN ĐÌNH TUẤN

BTL: BÀI TOÁN TÁM QUÂN HẬU

Page 1

.................................................9 6...........6 Ngôn ngữ lập trình: Lập trình C++.....................................................................................................5 3......................................................1 Giới thiệu bài toán................................................................4 2.5 3........................................................4 2......................................................................................................................3 Cụ thể như sau.............................................................................4 Cách làm..............................2 Các bước giải quyết bài toán..................................................................................................................................................................ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI MỤC LỤC Contents Contents..................................5 3.................................................................................................................9 Một số giao diện và kết quả chạy chương trình.................................................6 Cấu trúc dữ liệu và cách biểu diễn các trạng thái của bài toán...........................................1 Ý tưởng bài toán...........................3 Phân tích bài toán..............................................................................2 Kết quả chạy..........................................................................12 Tài liệu tham khảo....................1 Giao diện.................................9 6.......................................................2 Phân công công việc....2 Mục đích..............................................................................15 BTL: BÀI TOÁN TÁM QUÂN HẬU Page 2 ......................................

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI Phân công công việc STT Họ tên 1 Nguyễn Văn Tới 2 Hoàng Thanh Trọng 3 Nguyễn Đình Tuấn Công việc BTL: BÀI TOÁN TÁM QUÂN HẬU Page 3 .

Bài toán này cũng được ứng dụng trong trò chơi máy tính The 7th Guest vầo những năm 1990 Bài toán tám quân hậu là bài toán đặt tám quân hậu trên bàn cờ vua kích thước 8×8 sao cho không có quân hậu nào có thể "ăn" được quân hậu khác. Năm 1874. Glaisher hoàn chỉnh phương pháp này. 2. Gunther đưa ra phương pháp tìm lời giải bằng cách sử dụng định thức. và sau đó nhiều nhà toán học. Như vậy. lời giải của bài toán là một cách xếp tám quân hậu trên bàn cờ sao cho không có hai quân nào đứng trên cùng hàng.2 Mục đích Bài toán 8 quân hậu được phát biểu ngắn gọn như sau: Tìm cách đặt 8 quân hậu trên 1 bàn cờ sao cho không có 2 quân hậu nào có thể ăn được nhau. Bài toán tám quân hậu có thể tổng quát hóa thành bài toán đặt n quân hậu trên bàn cờ n×n(n ≥ 4). trong đó có Gauss và Georg Cantor. BTL: BÀI TOÁN TÁM QUÂN HẬU Page 4 .W. có các công trình về bài toán này và tổng quát nó thành bài toán xếp hậu. và J. hoặc cùng cột hoặc cùng đường chéo. Nauck cũng đã tổng quát bài toán thành bài toán n quân hậu.L. hay nói khác đi không quân hậu nào có để di chuyển theo quy tắc cờ vua. Mầu của các quân hậu không có ý nghĩa trong bài toán này.ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI Phân tích bài toán 2. S. Các lời giải đầu tiên được đưa ra bởi Franz Nauck năm 1850.1 Giới thiệu bài toán Bài toán được đưa ra vào 1848 bởi kỳ thủ Bài toán được đưa ra vào 1848 bởi kỳ thủ Max Bezzel.

với con hậu thứ i thì ta phải xét xem trên các hướng của nó sau đó tìm tiếp vị trí cho con hậu thứ i + 1.2 Các bước giải quyết bài toán Ta tìm vị trí để đặt cho con hậu thứ i.ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI Cách làm 3. BTL: BÀI TOÁN TÁM QUÂN HẬU Page 5 . Trường hợp suy biến của bài toán là khi chúng ta đã đặt cho con hậu thứ 8 có nghĩa là cả 8 con hậu đã được xếp trên bàn cờ và thỏa mãn điều kiện là các con hậu không thể ăn được nhau.1 Ý tưởng bài toán Một con hậu xếp ở một vị trí bất kì trên bàn cờ thì để tìm được vị trí của con hậu tiếp theo ta phải xét theo 3 hướng như hình sau: 3. Nếu ở bước thứ i không tìm thấy vị trí đặt của con hậu thì chúng ta phải quay lại xét đến vị trí khác của con hậu thứ i – 1.

n.  các phần tử nằm trên cùng cột có chỉ số cột bằng nhau... hay chúng lập thành một hoán vị của các số 1.Q[n.. phép quay bàn cờ thì chúng chỉ có 12 lời giải đơn vị như biểu diễn dưới đây: BTL: BÀI TOÁN TÁM QUÂN HẬU Page 6 ...  Tổng chỉ số dòng và cột của các quân hậu 1+i 1. Trong một ma trân vuông: các phần tử nằm trên cùng hàng có chỉ số hàng bằng nhau.ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI 3.. Các chỉ số dòng cột đánh từ trên xuống dưới. Do đó. j]. các đường chéo song song với đường chéo phụ là đường chéo cộng (hay tổng).  Cấu trúc dữ liệu và cách biểu diễn các trạng thái của bài toán Bài toán tám quân hậu có 92 lời giải khác nhau. in đôi một khác nhau..n-in đôi một khác nhau..Q[2..3 Cụ thể như sau Ký hiệu quân hậu đứng ở ô nằm trên hàng thứ i của lời giải là Q[i. Nếu không phân biệt các lời giải là ảnh của nhau qua phép đối xứng..i1].i2].. trái sang phải theo cách đánh số trong ma trận).  các phần tử nằm trên cùng một đường chéo song song với đường chéo chính có hiệu chỉ số hàng với chỉ số cột bằng nhau. n+in đôi một khác nhau. 2+i2. i2... in]..  Vì thế ta gọi các đường chéo song song với đường chéo chính là đường chéo trừ (hay hiệu).... mỗi lời giải có thể được biểu diễn bởi dãy Q[1.. 2.  các phần tử nằm trên cùng một đường chéo song song với đường chéo phụ có tổng chỉ số hàng với chỉ số cột bằng nhau..thỏa mãn các điều kiện: Các chỉ số cột i1. 2-i2.  Hiệu chỉ số dòng và cột của các quân hậu 1-i 1.

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI BTL: BÀI TOÁN TÁM QUÂN HẬU Page 7 .

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI BTL: BÀI TOÁN TÁM QUÂN HẬU Page 8 .

1 Giao diện BTL: BÀI TOÁN TÁM QUÂN HẬU Page 9 . 6.ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI Ngôn ngữ lập trình: Lập trình C++ Một số giao diện và kết quả chạy chương trình.

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI BTL: BÀI TOÁN TÁM QUÂN HẬU Page 10 .

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI BTL: BÀI TOÁN TÁM QUÂN HẬU Page 11 .

2 Kết quả chạy BTL: BÀI TOÁN TÁM QUÂN HẬU Page 12 .ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI 6.

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI BTL: BÀI TOÁN TÁM QUÂN HẬU Page 13 .

ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI BTL: BÀI TOÁN TÁM QUÂN HẬU Page 14 .

org Tailieu.vn BTL: BÀI TOÁN TÁM QUÂN HẬU Page 15 .ĐẠI HỌC CÔNG NGHIỆP HÀ NỘI Tài liệu tham khảo http://vi.wikipedia.