Bài toán Tháp Hà Nội là một bài toán trong lĩnh vực giải thuật. Bài toán được đặt tên theo tên của thành phố Hà Nội, nơi được cho là nơi phát minh ra trò chơi này.
Mô tả bài toán:
Bài toán gồm 3 cột (đóng vai trò như 3 chỗ đặt đĩa), n đĩa được đánh số từ 1 đến n, có kích thước khác nhau, đặt trên cột 1 sao cho đĩa nhỏ ở trên và đĩa lớn ở dưới. Yêu cầu di chuyển toàn bộ n đĩa từ cột 1 sang cột 3 sao cho không đặt đĩa lớn hơn lên đĩa nhỏ hơn trong quá trình di chuyển các đĩa.
Giải thuật:
Với n > 1, các bước 1 và 3 được thực hiện bằng cách đệ quy với n - 1 thay cho n.
Số đĩa n (n < 10)
Hướng dẫn di chuyển các đĩa để chuyển tất cả sang cột 3 với định dạng sau: Chuyen dia d tu cot x sang cot y (Xem chi tiết ở ví dụ mẫu)
Dữ liệu vào Sao chép |
1 |
Dữ liệu ra Sao chép |
Chuyen dia 1 tu cot 1 sang cot 3 |
Dữ liệu vào Sao chép |
2 |
Dữ liệu ra Sao chép |
Chuyen dia 1 tu cot 1 sang cot 2 Chuyen dia 2 tu cot 1 sang cot 3 Chuyen dia 1 tu cot 2 sang cot 3 |
Dữ liệu vào Sao chép |
3 |
Dữ liệu ra Sao chép |
Chuyen dia 1 tu cot 1 sang cot 3 Chuyen dia 2 tu cot 1 sang cot 2 Chuyen dia 1 tu cot 3 sang cot 2 Chuyen dia 3 tu cot 1 sang cot 3 Chuyen dia 1 tu cot 2 sang cot 1 Chuyen dia 2 tu cot 2 sang cot 3 Chuyen dia 1 tu cot 1 sang cot 3 |