Giải Chuyên đề Tin học 11 Bài 14: Thực hành kĩ thuật duyệt quay lui
Lời giải:
Kỹ thuật duyệt quay lui thường được áp dụng cho các bài toán tìm kiếm toàn bộ các cấu hình khả thi, những bài toán có tính khả thi cao nhưng lại khó tìm cách giải chính xác.
Ví dụ về các bài toán thường được giải bằng kỹ thuật duyệt quay lui bao gồm:
- Tìm kiếm đường đi trong đồ thị
- Liệt kê tất cả các tập con của một tập hợp
- Tìm đường đi mê cung
- Tìm kiếm các giải pháp tối ưu trong các bài toán tối ưu hóa rời rạc
- Giải bài toán Sudoku
- Giải các bài toán liên quan đến xếp hậu
Luyện tập
Lời giải:
Thay vì in từng phần tử của mảng A, chúng ta nối chúng lại để tạo thành một xâu kí tự bằng phương thức join().
Kết quả thu được nếu n = 4:
Lời giải:
Động tác quay lui nằm ở dòng 10, 11. Động tác "quay lui" thường được thực hiện khi một chuỗi ký tự hoặc một danh sách các phần tử đã được xây dựng để tạo thành câu, nhưng không phù hợp với yêu cầu hoặc điều kiện nào đó. Khi đó, chúng ta sẽ "quay lui" trở lại và thử các giá trị khác cho phần tử tiếp theo để xây dựng câu.
Việc hoán vị được thực hiện như sau: Việc hoán vị các phần tử được thực hiện bằng cách sử dụng một vòng lặp for để duyệt qua tất cả các phần tử trong tập hợp và đưa chúng vào vị trí kế tiếp của chuỗi hoặc danh sách đã được xây dựng. Sau đó, tiếp tục đệ quy để thêm phần tử tiếp theo cho chuỗi hoặc danh sách. Khi đã xây dựng được đầy đủ số phần tử cần thiết, chuỗi hoặc danh sách này được sử dụng để tạo thành một câu hoàn chỉnh. Khi không tìm được chuỗi hoặc danh sách phù hợp, chúng ta sẽ "quay lui" trở lại và thử các giá trị khác cho phần tử tiếp theo.
Vận dụng
Lời giải:
Để kiểm tra xem một biểu thức có hợp lệ về sử dụng các dấu ngoặc đơn hay không, chúng ta có thể sử dụng kĩ thuật duyệt quay lui để kiểm tra. Cụ thể, chúng ta sẽ duyệt qua từng ký tự trong biểu thức và sử dụng một stack (ngăn xếp) để lưu trữ các dấu ngoặc đơn.
Lời giải:
Ý tưởng chính là ta sẽ chọn lần lượt các phần tử trong tập hợp S để tạo thành một hoán vị, và ta sẽ tiếp tục chọn các phần tử còn lại trong tập hợp cho đến khi hoàn thành hoán vị.
Vận dụng 3 trang 63 Chuyên đề Tin học 11: Cho các hệ sốHãy viết chương trình sinh tất cả các đa thức bậc k có thể thành lập từ các hệ số trên, mỗi hệ số sử dụng một lần. Một ví dụ của đa thức trên là
Lời giải:
Để giải quyết bài toán này, ta có thể sử dụng kĩ thuật quay lui để sinh ra các đa thức bậc k. Mỗi lần sinh ra một đa thức, ta cập nhật lại danh sách các hệ số đã sử dụng bằng cách loại bỏ hệ số đang được sử dụng để không sử dụng lại trong các lần kế tiếp.
Xem thêm lời giải bài tập Chuyên đề học tập Tin học lớp 11 Kết nối tri thức hay, chi tiết khác:
Bài 11: Bài toán tìm kiếm theo kĩ thuật duyệt
Bài 12: Thực hành kĩ thuật duyệt cho bài toán tìm kiếm
Bài 13: Kĩ thuật duyệt quay lui
Bài 16: Thực hành thiết kế thuật toán theo kĩ thuật quay lui