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
Hoạt động 2 trang 56 Chuyên đề Tin học 11: 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.
Lời giải:
Dãy bit độ dài n có dạng X = (x0, x1...xn-1), trong đó xi 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 X. 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 xn-1).
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 khi đang xây dựng thành phần xi mà xi đã lần lượt nhận cả hai giá trị 0 và 1, khi đó thành phân xi 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
Lời giải Chuyên đề Tin 11 Bài 2: Kĩ thuật quay lui hay, ngắn gọn khác:
Xem thêm lời giải bài tập Chuyên đề học tập Tin học 11 Cánh diều hay, ngắn gọn khác:
Chuyên đề Tin học 11 Bài 4: Thực hành tổng hợp kĩ thuật duyệt
Chuyên đề Tin học 11 Bài 5: Thực hành kĩ thuật quay lui giải bài toán xếp hậu
Chuyên đề Tin học 11 Bài 6: Dự án: Xây dựng chương trình sử dụng kĩ thuật duyệt
Xem thêm các tài liệu học tốt lớp 11 hay khác:
- Giải Chuyên đề Tin học 11 Kết nối tri thức
- Giải Chuyên đề Tin học 11 Chân trời sáng tạo
- Giải Chuyên đề Tin học 11 Cánh diều
- Giải lớp 11 Kết nối tri thức (các môn học)
- Giải lớp 11 Chân trời sáng tạo (các môn học)
- Giải lớp 11 Cánh diều (các môn học)
- Giải Tiếng Anh 11 Global Success
- Giải sgk Tiếng Anh 11 Smart World
- Giải sgk Tiếng Anh 11 Friends Global
- Lớp 11 - Kết nối tri thức
- Soạn văn 11 (hay nhất) - KNTT
- Soạn văn 11 (ngắn nhất) - KNTT
- Giải sgk Toán 11 - KNTT
- Giải sgk Vật Lí 11 - KNTT
- Giải sgk Hóa học 11 - KNTT
- Giải sgk Sinh học 11 - KNTT
- Giải sgk Lịch Sử 11 - KNTT
- Giải sgk Địa Lí 11 - KNTT
- Giải sgk Giáo dục KTPL 11 - KNTT
- Giải sgk Tin học 11 - KNTT
- Giải sgk Công nghệ 11 - KNTT
- Giải sgk Hoạt động trải nghiệm 11 - KNTT
- Giải sgk Giáo dục quốc phòng 11 - KNTT
- Giải sgk Âm nhạc 11 - KNTT
- Lớp 11 - Chân trời sáng tạo
- Soạn văn 11 (hay nhất) - CTST
- Soạn văn 11 (ngắn nhất) - CTST
- Giải sgk Toán 11 - CTST
- Giải sgk Vật Lí 11 - CTST
- Giải sgk Hóa học 11 - CTST
- Giải sgk Sinh học 11 - CTST
- Giải sgk Lịch Sử 11 - CTST
- Giải sgk Địa Lí 11 - CTST
- Giải sgk Giáo dục KTPL 11 - CTST
- Giải sgk Hoạt động trải nghiệm 11 - CTST
- Giải sgk Âm nhạc 11 - CTST
- Lớp 11 - Cánh diều
- Soạn văn 11 Cánh diều (hay nhất)
- Soạn văn 11 Cánh diều (ngắn nhất)
- Giải sgk Toán 11 - Cánh diều
- Giải sgk Vật Lí 11 - Cánh diều
- Giải sgk Hóa học 11 - Cánh diều
- Giải sgk Sinh học 11 - Cánh diều
- Giải sgk Lịch Sử 11 - Cánh diều
- Giải sgk Địa Lí 11 - Cánh diều
- Giải sgk Giáo dục KTPL 11 - Cánh diều
- Giải sgk Tin học 11 - Cánh diều
- Giải sgk Công nghệ 11 - Cánh diều
- Giải sgk Hoạt động trải nghiệm 11 - Cánh diều
- Giải sgk Giáo dục quốc phòng 11 - Cánh diều
- Giải sgk Âm nhạc 11 - Cánh diều