Giải chuyên đề Tin học định hướng khoa học máy tính 11 KNTT bài 13 Kỹ thuật duyệt quay lui

Hướng dẫn giải chuyên đề bài 13 Kỹ thuật duyệt quay lui trang 56, chuyên đề học tập Tin học định hướng khoa học máy tính 11 sách KNTT. Bộ sách được biên soạn theo định hướng đổi mới giáo dục phổ thông nhằm phát triển toàn diện phẩm chất, năng lực của học sinh. Hi vọng, với cách hướng dẫn cụ thể và giải chi tiết dưới đây các em sẽ nắm bài học tốt hơn.

B. Bài tập và hướng dẫn giải

Khởi động

Câu hỏi. Chúng ta đã biết từ bài học trước, thiết lập các thuật toán duyệt sẽ phụ thuộc hoàn toàn vào mô hình và cấu trúc của miền dữ liệu cần tìm kiếm. Từ lâu các nhà khoa học đã nhìn thấy rất nhiều bài toán khó không tìm được cách duyệt hữu hiệu, điển hình nhất là bài toán tìm đường đi trong mê cung.Bài toán tìm đường đi trong mê cung lần đầu tiên được đưa ra trong cuốn sách Récréations Mathématiques của tác giả Édouard Lucas năm 1882 tại Pháp. Cũng trong cuốn sách đó Lucas đã đưa ra phác thảo đầu tiên của một phương pháp giải bài toán tìm đường đi trong mê cung mà bây giờ chúng ta gọi là thuật toán duyệt quay lui, hay đơn giản là thuật toán quay lui (backtracking).

Giải chuyên đề Tin học định hướng khoa học máy tính 11 KNTT bài 13 Kỹ thuật duyệt quay lui

Trong trò chơi mê cung (xem hình) em cần tìm một đường đi xuất phát từ lối vào và ra khỏi mê cung tại lối ra. Em có đề xuất gì để giải bài toán này.

1. Kỹ thuật duyệt quay lui

Câu hỏi. Đọc, trao đổi và thảo luận về ý tưởng thuật toán quay lui của bài toán tìm đường đi trong mê cung.

Câu hỏi 1. Khi đã thực hiện hết các bước lặp tại dòng 2 ở trên thì hàm có dừng không?

Câu hỏi 2. Lệnh gọi hàm chính của chương trình trên là gì?

Câu hỏi 3. Nếu yêu cầu bổ sung thêm 1 lệnh “Nếu thấy <lối ra> thì thông báo và dừng chương trình” thì lệnh này sẽ đặt ở đâu trong chương trình trên?

2. Mô hình tổng quát của kỹ thuật duyệt quay lui

Câu hỏi. Trạng thái "quay lui" của thuật toán trên nằm ở đâu?

Câu hỏi 2. Có cách nào đếm được tất cả các nghiệm từ thuật toán trên được không? Nếu có thì làm cách nào?

3. Bài toán sinh sâu nhị phân

Câu hỏi. Cùng thực hiện, trao đổi, thảo luận thiết kế chương trình sinh tất cả các dãy nhị phân độ dài n bằng kĩ thuật quay lui.

Câu hỏi 1. Trong chương trình 1, động tác “quay lui” nằm ở đâu?

Câu hỏi 2. Giải thích ý nghĩa của lệnh A.pop() tại dòng 8 của chương trình 2. Vì sao lệnh này không có trong chương trình 1?

Luyện tập

Câu hỏi 1. Sửa các chương trình trên bổ sung thêm chức năng: sau khi in ra tất cả các xâu nhị phân thi thông báo tổng số nghiệm.

Vận dụng

Câu hỏi 1. Viết chương trình sinh tất cả các xâu (hoặc dãy) bao gồm n kí tự dạng “R”, “G” và "B".

Câu hỏi 2. Viết chương trình sinh xâu nhị phân thực sự có độ dài n, tức là kết quả in ra phải là các xâu kí tự chứ không phải là danh sách (list) như trong các chương trình trên.

Từ khóa tìm kiếm: Giải chuyên đề tin học 11 KNTT bài 13 Kỹ thuật duyệt quay lui, Giải chuyên đề tin học 11 kết nối tri thức bài 13 Kỹ thuật duyệt quay lui, Giải chuyên đề tin học KNTT bài 13 Kỹ thuật duyệt quay lui

Bình luận

Giải bài tập những môn khác