Trang chủ Lớp 11 Tin học Giải chuyên đề Tin 11 Cánh diều Bài 2. Phương pháp quay lui

Giải chuyên đề Tin 11 Cánh diều Bài 2. Phương pháp quay lui

Giải chuyên đề Tin 11 Cánh diều Bài 2. Phương pháp quay lui

  • 167 lượt thi

  • 6 câu hỏi

  • 0 phút

Danh sách câu hỏi

Câu 1:

17/06/2026

Trong bài học trước, các em đã tìm hiểu bài toán Chọn mua đồ dùng học tập với các tình huống mua một đồ dùng hoặc hai đồ dùng. Nếu bài toán không cố định số lượng đổ dùng cần mua mà có thể mua một số đồ dùng với tổng giá không vượt quá T (đồng) và tổng mức độ yêu thích của các đồ dùng đó là lớn nhất, em hãy trình bày ý tưởng giải quyết bài toán.

Xem đáp án

Đề giải quyết bài toán mua đồ bằng kĩ thuật duyệt ta có thể xét toàn bộ dãy bit độ dài n, với mỗi dãy bịt tương ứng với một phương án mua, ta tiến hành tính tổng giá để kiểm tra ràng buộc không vượt quá T (đồng) và tính tổng mức độ yêu thích để chọn phương án tối ưu.


Câu 2:

17/06/2026

Cho 5 đồ dùng với giá và mức độ yêu thích tương ứng như trong Bảng 1. Nếu T= 20 (nghìn đồng) thì Hồng cần chọn mua những đồ dùng nào để tổng mức độ yêu thích là lớn nhất

Cho 5 đồ dùng với giá và mức độ yêu thích tương ứng như trong Bảng 1. Nếu T= 20 (nghìn đồng) thì Hồng cần chọn mua những đồ dùng nào để tổng mức độ yêu thích là lớn nhất?   (ảnh 1)
Xem đáp án

Lời giải bài toán này có thể biểu diễn bằng 1 dãy bit độ dài n (n là số lượng đồ vật), trong đó bit thứ i (0 < i < n-1) bằng 1 hoặc 0 tương ứng là vật thứ i được chọn hoặc không chọn

Ví dụ: dãy bit (1. 0. 0. 1.0) tương ứng với cách chọn đồ dùng số 0 và 3 với tổng giá là 10 +9 = 19 (nghìn đồng) và mức độ yêu thích là 7 + 6 = 13: dãy bit (1,1,0, 0, 1) tương ứng với cách chọn đồ dùng số 0. 1 và 4 có tổng giá là 10 + 5 + 5 = 20 (nghìn đồng) và mức độ yêu thích là 7 + 2 - 3 = 12.

Để giải quyết bài toán mua đồ tổng quát băng kĩ thuật duyệt ta có thể xét toàn bộ dãy bít độ dài n. với mỗi dãy bít tương ứng với một phương án mua, ta tiến hành tính tổng giá để kiểm tra ràng buộc không vượt quá 7 (đồng) và tính tổng mức độ yêu thích đề chọn phương án tối ưu.


Câu 3:

17/06/2026

Em hãy tìm hiểu chương trình liệt kê dãy bit độ dài n bằng kĩ thuật đệ quy trong Hình 1 và chạy thử nghiệm chương trình. Cho biết số lượng dãy bit nhị phân độ dài 3, 5, 10 tương ứng là bao nhiêu.

Xem đáp án

Dãy bit độ dài n có dạng X = (x0,x1...xn-1), trong đó x1 bằng 0 hoặc 1 (0 <i<n-1) có thể mô tả theo cách đệ quy như sau:

- Nếu n > 0 thì phần tử đầu tiên của dãy bằng 0 hoặc 1 và n - 1 phần tử sau là dãy bit độ dài n - 1

- Ngược lại, nếu n = 0 thì dãy bit độ dài n là dãy rỗng

Việc xây dựng các dãy nhị phân theo thuật toán đệ quy như sau:
1. Bắt đầu từ X rỗng, lệnh x = [] và gọi thủ tục đệ quy backtrack(0) để xây dựng bắt đầu phần tử 0.

2. Thành phần i (0<i<n-1) sẽ lần lượt nhận giá trị 0 và 1 bằng lệnh for v in range(2): Với mỗi giá trị của v, thành phần i được ghi nhận vào xi của X bằng lệnh x.append(v). lệnh này đây v vào cuối ÀV Sau đó tiếp tục gợi để quy để xây dựng các thành phần còn lại (từ thành phần Xi+1... đến thành phần x.)

3. Để xét được khả năng tiếp theo, hành động quay lui được thực hiện bằng cách loại bỏ nhị phân thành phần cuối cùng của X bằng lệnh x.pop(). Việc quay lui cũng được diễn ra khí đang xây dựng thành phần x mà x, đã lần lượt nhận cả hai giá trị 0 và 1, khi đó thành phân x sẽ bị loại khỏi X và lùi về để xét khả năng tiếp theo cho thành phần Xi-1


Bắt đầu thi ngay