Bài 2: Kĩ thuật đệ quy trong chia để trị - Chuyên đề Tin học 11 Cánh diều>
Trong Bài 1, em đã biết thuật toán tìm kiếm nhị phân bằng vòng lặp. Việc loại bỏ đi một nửa dãy sau mỗi bước và tìm kiếm phần tử trên một nửa dãy còn lại cũng phù hợp với việc cài đặt đệ quy do các bước làm chỉ khác nhau ở phạm vi tìm kiếm.
Tổng hợp đề thi học kì 2 lớp 11 tất cả các môn - Cánh diều
Toán - Văn - Anh - Lí - Hóa - Sinh
Câu 1
Trả lời câu hỏi khởi động trang 31 Chuyên đề Tin học 11 Cánh diều
Trong Bài 1, em đã biết thuật toán tìm kiếm nhị phân bằng vòng lặp. Việc loại bỏ đi một nửa dãy sau mỗi bước và tìm kiếm phần tử trên một nửa dãy còn lại cũng phù hợp với việc cài đặt đệ quy do các bước làm chỉ khác nhau ở phạm vi tìm kiếm. Em hãy mô tả lại từng bước thu hẹp phạm vi tìm kiếm trên một ví dụ trong Hình 4 của Bài 1 để thấy sự lặp lại thuật toán trên bài toán con so với bài toán cha.
Lời giải chi tiết:
Bước 1. So sánh x với phần tử năm ở vị trí giữa dãy số. gọi là phân tử giữa.
Bước 2. Nếu x bằng với giá trị phân tử giữa. đưa ra vị trí phần tử tìm được.
Bước 3. Nếu x lớn hơn giá trị phân tử giữa. giá trị x chỉ có thể nằm ở nửa bên phải phân tử giữa của dãy số (nửa có giá trị lớn hơn). Quay lại Bước 1, tiếp tục áp dụng thuật toán đối với nửa dãy số bên phải này.
Bước 4. Nếu x nhỏ hơn giá trị phân từ giữa, giá trị x chỉ có thể năm ở nửa bên trái phân tử giữa của dãy số (nứa có giá trị nhỏ hơn). Quay lại Bước 1 tiếp tục áp dụng thuật toán đối với nửa dãy số bên trái này.
Câu 2
Trả lời câu hỏi hoạt động 1 trang 31 Chuyên đề Tin học 11 Cánh diều
Tìm hiểu Bước 3 và Bước 4 trong thuật toán tìm kiếm nhị phân để rút ra kĩ thuật đệ quy cài đặt thuật toán này. Hai bước trên có thể cài đặt bởi lời gọi đệ quy đến hàm tìm kiếm nhị phân tổng quái với tham số đầu vào là khoảng cần tìm kiếm trong dãy số. Em hãy đọc hiểu chương trình Python mẫu trong Hình 1 và chạy thử nghiệm trên các bộ dữ liệu đầu vào khác nhau.
Lời giải chi tiết:
Chức năng hoạt động của Bước 3 và Bước 4 trong thuật toán tìm kiếm nhị phân hoàn toàn giống nhau chỉ khác là thực hiện ở phạm vi nào trong dãy số. Đồng thời chức năng hoạt động của hai bước này cũng hoàn toàn giống với chức năng hoạt động của thuật toán trên toàn dãy số. Lưu ý trong trường hợp phạm vi tìm kiếm là rỗng (nghĩa là t > p trong chương trình ở hình 7). Chương trình cần thông báo không tồn tại phần tử cần tìm.
Câu 3
Trả lời câu hỏi hoạt động 2 trang 33 Chuyên đề Tin học 11 Cánh diều
Em hãy giúp Thanh An mô tả chỉ tiết các bước tính giá trị 310 với số phép tính nhân phải sử dụng là ít nhất.
Lời giải chi tiết:
Có 2 trường hợp:
1) an = an2 X an2, nếu n chẵn
2) an = a X an−1, nếu n lẻ và n > 1
=> Lưu lại kết quả bài toán con trong mỗi lần gọi đệ quy để tránh gọi quy lặp lại cho các bài toán con đã tính
Câu 4
Trả lời câu hỏi Vận dụng trang 34 Chuyên đề Tin học 11 Cánh diều
Em hãy viết hàm đệ quy để tìm kiếm nhị phân giá trị x trong dãy A không giảm có n phần tử A0,A1, ..., An - 1 các phần tử có thể trùng nhau. Nếu tìm thấy thì hàm này trả về chỉ số i nhỏ nhất mà Ai = x. Nếu không tìm thấy thì hàm này trả về -1.
Lời giải chi tiết:
include
using namespace std;
int tim(int *a,int left,int right,int x)
{
int m;
if(left>right) return 0;
m=(left+right)/2;
if(a[m]==x) return m;
if(x<a[m]) return tim(a,left,m-1,x);
return tim(a,m+1,right,x);
}
void main()
{
int a[10]={1,2,3,4,5,6,7,8,9,10};
int x;
cout<<"tim so: ";cin>>x;
if(int z=tim(a,0,9,x)) cout<<"tim thay tai vi tri: "<<z<<"\n";
else cout<<"khong tim thay\n";
}
Câu 5
Trả lời câu hỏi tự kiểm tra 1 trang 34 Chuyên đề Tin học 11 Cánh diều
Trong những câu sau đây, câu nào đúng cho việc giải bài toán tính 2” bằng phương pháp chia để trị?
1) Xét trường hợp n chẵn và n lẻ riêng.
2) n chẵn hay n lẻ đều giải quyết như nhau.
Lời giải chi tiết:
Xét trường hợp n chẵn và n lẻ riêng.
Câu 6
Trả lời câu hỏi tự kiểm tra 2 trang 34 Chuyên đề Tin học 11 Cánh diều
Em hãy cho biết nếu sử dụng phương pháp chia để trị đề tính 412 thì cần ít nhật bao nhiêu phép tính nhân.
Lời giải chi tiết:
Em hãy cho biết nếu sử dụng phương pháp chia để trị để tính 412 thì cần ít nhật 6 phép tính nhân.


- Bài 3: Thực hành ứng dụng thuật toán tìm kiếm nhị phân bằng đệ quy - Chuyên đề Tin học 11 Cánh diều
- Bài 1: Ý tưởng chia để trị - Chuyên đề Tin học 11 Cánh diều
- Bài 5: Thực hành tổng hợp ứng dụng chia để trị - Chuyên đề Tin học 11 Cánh diều
- Bài 4: Kĩ thuật chia để trị trong thuật toán sắp xếp trộn - Chuyên đề Tin học 11 Cánh diều
Các bài khác cùng chuyên mục
- Bài 6: Dự án: Xây dựng chương trình sử dụng kĩ thuật duyệt - Chuyên đề Tin học 11 Cánh diều
- 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 Cánh diều
- Bài 4: Thực hành tổng hợp kĩ thuật duyệt - Chuyên đề Tin học 11 Cánh diều
- Bài 3: Thực hành kĩ thuật quay lui - Chuyên đề Tin học 11 Cánh diều
- Bài 2: Kĩ thuật quay lui - Chuyên đề Tin học 11 Cánh diều
- Bài 6: Dự án: Xây dựng chương trình sử dụng kĩ thuật duyệt - Chuyên đề Tin học 11 Cánh diều
- 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 Cánh diều
- Bài 4: Thực hành tổng hợp kĩ thuật duyệt - Chuyên đề Tin học 11 Cánh diều
- Bài 3: Thực hành kĩ thuật quay lui - Chuyên đề Tin học 11 Cánh diều
- Bài 2: Kĩ thuật quay lui - Chuyên đề Tin học 11 Cánh diều