Giải chuyên đề KHMT 11 kết nối: Bài 5 Thực hành thiết kế bài toán theo kĩ thuật đệ quy
Hướng dẫn giải chuyên đề Khoa học máy tính 11 kết nối tri thức: Giải bài 5 Thực hành thiết kế bài toán theo kĩ thuật đệ quy. Bài được giải chi tiết, rõ ràng, dễ hiểu. Bài giải giúp học sinh nắm vững kiến thức trong sách giáo khoa, rèn kĩ năng giải bài tập và có phương pháp học tập hiệu quả.
Nội dung chi tiết
Khởi động
Câu hỏi. Hãy phân tích một số ưu nhược điểm của việc áp dụng kĩ thuật đệ quy trong lập trình.
Giải chi tiết:
* Ưu điểm:
- Code ngắn gọn, dễ đọc và dễ hiểu: Một số bài toán cần giải quyết có cấu trúc lặp đi lặp lại, nhưng sử dụng đệ quy giúp code được viết ngắn gọn hơn, dễ hiểu và dễ bảo trì.
- Dễ dàng để xử lý các bài toán phức tạp: Kỹ thuật đệ quy giúp chúng ta dễ dàng giải quyết các bài toán phức tạp hơn bằng cách chia nhỏ bài toán thành các bài toán con đơn giản hơn.
* Tuy nhiên, kỹ thuật đệ quy cũng có một số nhược điểm, như:
- Thời gian chạy chậm: Kỹ thuật đệ quy có thể làm cho chương trình chạy chậm hơn nếu sử dụng không chính xác.
- Khó hiểu: Trong một số trường hợp, kỹ thuật đệ quy có thể làm cho mã khó hiểu, đặc biệt là khi số lần đệ quy là lớn.
Luyện tập
Câu hỏi. Viết chương trình đệ quy giải quyết nhiệm vụ 2 nhưng với yêu cầu đầu ra của hàm là một dãy (list) các số 0 và 1.
Giải chi tiết:
Để chuyển từ số thập phân sang nhị phân bằng đệ quy, ta cần thực hiện các bước sau:
1. Chia số thập phân cho 2 và lấy phần nguyên và phần dư
2. Lưu phần dư vào danh sách
3. Lặp lại cho đến khi số thập phân bằng 0

Ví dụ, nếu ta gọi hàm decimal_to_binary(13), kết quả trả về sẽ là [1, 1, 0, 1], tương ứng với số nhị phân 1101.
Câu hỏi 2. Viết hàm decimal(s) chuyển đổi xâu nhị phân s sang số thập phân tương ứng. Ví dụ nếu đầu vào là "10" thì kết quả 2, nếu đầu vào "1011" thì kết quả là 11. Yêu cầu viết theo kĩ thuật đệ quy.
Giải chi tiết:
Để chuyển đổi một xâu nhị phân sang số thập phân, ta có thể sử dụng thuật toán đệ quy như sau:
- Nếu xâu chỉ có một kí tự, trả về giá trị của kí tự đó (0 hoặc 1).
- Ngược lại, lấy kí tự đầu tiên của xâu và nhân với 2^(độ dài xâu - 1), sau đó cộng với giá trị của phần còn lại của xâu đã bỏ đi kí tự đầu tiên.

Ví dụ:

Vận dụng
Câu hỏi 1. Cho trước dãy số A = A[0], A[1]..... A[n - 1]. Cặp phân tử (A[i]. A[j]) được gọi là nghịch đảo nếu i< j nhưng A[i] > A[j]. Viết chương trình đếm số các cặp phần tử j nghịch đảo của dãy A.
a) Viết chương trình không đệ quy.
b) Viết chương trình theo kĩ thuật đệ quy.
Giải chi tiết:
a) Gợi ý:
def count(a): n=len(a)
if n<2: return 0 left=a[:n//2]
right=a[n//2:] ans=0 ans+=count(left) ans+=count(right) i=0 j=0 k=0
while i<len(left)
and j<len(right):
if left[i]<=right[j]: a[k]=left[i] i+=1 k+=1
else: a[k]=right[j] j+=1 k+=1
ans+=len(left)-i
if i<len(left): a[k:]=left[i:]
if j<len(right): a[k:]=right[j:]
return ans print count([2,3,8,6,1])
b)

Câu hỏi 2. Thiết kế thuật toán cho bài toán tính giá trị của đa thức dạng:

Ở đây, đầu vào là các giá trị x,a0,a1,...,an
Gọi A = [a0, a1, an....]là dãy các hệ số của đa thức (1).
Công thức (1) có thể viết lại với định nghĩa hàm F(A, x, n) như sau:
![]()
Giải chi tiết:
Thuật toán:
- Nếu i = 0, ta trả về a[0]
- Ngược lại, ta tính giá trị của đa thức đến bậc i - 1, rồi nhân với x, cuối cùng cộng với a[i].
Viết chương tình và kiểm tra kết quả như sau:

Thu được kết quả:

Tài liệu cùng môn học
- Trắc nghiệm khoa học máy tính 11 kết nối tri thức
- Giáo án word tin học khoa học máy tính 11 kết nối tri thức
- Giáo án ppt tin học khoa học máy tính 11 kết nối tri thức
- Giáo án chuyên đề tin học khoa học máy tính 11 kết nối tri thức
- Giáo án ppt chuyên đề tin học khoa học máy tính 11 kết nối tri thức
- Giải tin học khoa học máy tính 11 kết nối tri thức
- Phiếu bài tập tin học khoa học máy tính 11 kết nối tri thức
- Lý thuyết khoa học máy tính 11 kết nối tri thức
- Bài tập củng cố Khoa học máy tính 11 kết nối tri thức
- Trắc nghiệm trả lời ngắn khoa học máy tính 11 kết nối tri thức
- Trắc nghiệm đúng sai khoa học máy tính 11 kết nối tri thức
- Đề thi tin học khoa học máy tính 11 kết nối tri thức
- Giải chuyên đề khoa học máy tính 11 kết nối tri thức
- Ppt trò chơi AI Tin học KHMT 11 Kết nối tri thức
- Ppt trò chơi AI Tin học 11 Khoa học máy tính Kết nối tri thức
- Video AI mở đầu Tin học 11 Khoa học máy tính Kết nối tri thức
Tài liệu khác
- Trắc nghiệm văn 11 kết nối tri thức
- Trắc nghiệm địa lí 11 kết nối tri thức
- Trắc nghiệm hóa học 11 kết nối tri thức
- Trắc nghiệm KTPL 11 kết nối tri thức
- Trắc nghiệm lịch sử 11 kết nối tri thức
- Trắc nghiệm sinh học 11 kết nối tri thức
- Trắc nghiệm toán 11 kết nối tri thức
- Trắc nghiệm quốc phòng 11 kết nối tri thức
- => Xem nhiều môn hơn