Bài Toán Mã đi Tuần – Wikipedia Tiếng Việt
Có thể bạn quan tâm


Bài toán mã đi tuần (Tiếng Anh: Knight's tour) là bài toán về việc đi tìm dãy nước đi cho một quân mã trên bàn cờ vua (8 x 8). Quân mã được đặt ở một ô trên một bàn cờ trống, nó phải di chuyển theo quy tắc của cờ vua để đi qua mỗi ô trên bàn cờ đúng một lần. Nếu quân mã dừng lại ở ô khởi đầu thì đường đi của quân mã gọi là đóng, nếu không thì ta gọi là mở.[1][2]
Bài toán mã đi tuần thường được sử dụng làm bài tập xây dựng chương trình giải cho sinh viên ngành khoa học máy tính.[3] Bài toán này cũng có nhiều biến thể bằng việc thay đổi kích cỡ bàn cờ 8 x 8 quen thuộc thành các kích cỡ khác, thậm chí bàn cờ không còn có hình chữ nhật nữa.
Lý thuyết giải
[sửa | sửa mã nguồn]
Bài toán mã đi tuần là trường hợp cụ thể của đường đi Hamilton trong lý thuyết đồ thị. Khi đường đi của quân mã là đóng, nó trở thành chu trình Hamilton. Tuy nhiên, không giống với bài toán chu trình Hamilton tổng quát thì bài toán mã đi tuần có thể được giải với thời gian tuyến tính.[4]
Định lý Schwenk
[sửa | sửa mã nguồn]Cho bàn cờ m × n bất kỳ với m nhỏ hơn hoặc bằng n, không có hành trình đóng nào của quân mã nếu một trong ba điều kiện dưới đây xảy ra:
- m và n đều là lẻ
- m = 1, 2, hoặc 4; n khác 1
- m = 3 và n = 4, 6, hoặc 8
Điều kiện 1
[sửa | sửa mã nguồn]Dễ dàng chứng minh rằng khi điều kiện 1 thỏa mãn, không thể có hành trình đóng của quân mã.
Trên bàn cờ vua, các ô đen và trắng xen kẽ nhau, một quân mã luôn đi từ một ô tới ô khác màu.
Vì m và n đều là lẻ nên khi đó số các ô đen và trắng trên bàn cờ là khác nhau. Chẳng hạn bàn cờ 5×5 có 13 ô đen và 12 ô trắng.
Một đường đi đóng của quân mã phải có số ô đen và trắng bằng nhau, tổng số ô trên mọi hành trình đóng là số chẵn. Do đó một hành trình đóng không thể đi qua mỗi ô đúng một lần khi số các ô trên bàn cờ là số lẻ.
Điều kiện 2
[sửa | sửa mã nguồn]Điều kiện 2 xảy ra khi độ dài cạnh ngắn là 1, 2, hoặc 4, cũng không thể có đường đi đóng.
Dễ thấy rằng khi m = 1 hoặc 2 không thể có hành trình của quân mã: quân mã không thể đi qua mọi ô (trừ trường hợp bàn cờ 1x1).
Cũng có thể thấy rằng bàn cờ 4 × n không có hành trình đóng của quân mã.
Giả sử một bàn cờ kích thước 4 × n có một hành trình đóng của quân mã. Ta xét hai tập con các ô trên bàn cờ, và , gồm các ô thuộc nửa màu đen và gồm các ô màu trắng. Theo quy tắc cờ vua quân mã luôn di chuyến liên tiếp giữa hai tập các ô đen và tập các ô trắng và ngược lại ( và ).

.
Ta lại xét hình minh họa bên phải. Ta định nghĩa là tập các ô màu xanh lá cây và là tập các ô màu đỏ trên hình vẽ. Các tập này có số ô bằng nhau. Chú y rằng từ một ô trong quân mã chỉ có thể nhảy sang một ô trong . Ngoài ra, vì quân mã phải đi qua tất cả các ô, nên ngược lại khi quân mã đứng ở một ô trong ở bước tiếp theo nó phải nhảy về một ô thuộc (nếu không như vậy số thì trên hành trình kín ấy quân mã phải có hai ô liên tiếp trong điều đó không xảy ra).
Ta sẽ tìm thấy mâu thuẫn trong lập luận sau đây.
Vì có một hành trình đóng của quân mã, nên có thể chọn bất kỳ ô nào làm ô thứ nhất của hành trình
- Chọn ô thứ nhất thuộc tập .
- Khi đó ô thứ hai phải thuộc .
- Ô thứ ba thuộc tập .
- Ô thứ tư thuộc tập .
- ...
Như thế hành trình này không chưa các ô thuộc và do đó không thể chứa tất cả các ô trên bàn cờ..
Điều kiện 3
[sửa | sửa mã nguồn]Điều kiện 3 được chứng minh cho từng trường hợp. Tuy nhiên, chúng vẫn có thể có lời giải với hành trình mở. Chẳng hạn với bàn cờ 3 x 4 ta có 4 hành trình mở sau:
Hai lời giải với bàn cờ 8 x 8
[sửa | sửa mã nguồn]
Xem thêm
[sửa | sửa mã nguồn]- Bài toán tám quân hậu
- Mã (cờ vua)
Tham khảo
[sửa | sửa mã nguồn] Chú thích- ^ Brown, Alfred James (2017). Knight's Tours and Zeta Functions (MS thesis). San José State University. tr. 3. doi:10.31979/etd.e7ra-46ny.
- ^ Hooper, David; Whyld, Kenneth (1996) [First pub. 1992]. "knight's tour". The Oxford Companion to Chess (ấn bản thứ 2). Oxford University Press. tr. 204. ISBN 0-19-280049-3.
- ^ Deitel, H. M.; Deitel, P. J. (2003). Java How To Program Fifth Edition (ấn bản thứ 5). Prentice Hall. tr. 326–328. ISBN 978-0131016217.
- ^ Conrad, A.; Hindrichs, T.; Morsy, H. & Wegener, I. (1994). "Solution of the Knight's Hamiltonian Path Problem on Chessboards". Discrete Applied Mathematics. 50 (2): 125–134. doi:10.1016/0166-218X(92)00170-Q.
- Watkins, John J. Across the Board: the Mathematics of Chessboard Problems. Princeton UP, 2004.
Liên kết ngoài
[sửa | sửa mã nguồn]- The ultimate Knight's Tour page of Links Lưu trữ ngày 6 tháng 8 năm 2004 tại Wayback Machine
- The knight's tour Lưu trữ ngày 29 tháng 6 năm 2018 tại Wayback Machine
- Knight's tour notes
- A Simple backtracking implementation in C++ Lưu trữ ngày 14 tháng 11 năm 2013 tại Wayback Machine
- Number of knight's tours on a 2n X 2n chessboard Sloane's Integer Sequence A001230
- 8 by 8 Knight's Tour strategy
- Playable 8 by 8 Knight's Tour
Từ khóa » Code Mã đi Tuần Pascal
-
Bài Toán Mã đi Tuần Pascal - 123doc
-
Bài Toán Mã đi Tuần - Programming - Dạy Nhau Học
-
Mã đi Tuần - HỌC TIN CÙNG THỦ KHOA
-
Bài Toán Mã đi Tuần đây Bà Con
-
Hướng Dẫn Giải Bài Toán Mã đi Tuần - Lập Trình Không Khó
-
Tài Liệu Hướng Dẫn Thực Hành BÀI TOÁN MÃ ĐI TUẦN - TaiLieu.VN
-
[Top Bình Chọn] - Bài Toán Mã đi Tuần Bằng đệ Quy - Trần Gia Hưng
-
Bài Toán Quân Mã đi Tuần Và Những điều Thú Vị ẩn Sau Nó
-
BÀI TOÁN “QUÂN MÃ ĐI TUẦN” VÀ NHỮNG ĐIỀU THÚ VỊ ẨN SAU ...
-
Code Mã đi Tuần Ai Giúp Với - Diễn Đàn Tin Học
-
BÀI TOÁN “QUÂN MÃ ĐI TUẦN” VÀ NHỮNG ĐIỀU THÚ ... - Spiderum