Bài giảng Nhập môn lập trình - Chương 16: Kỹ thuật lập trình đệ quy
Số trang: 43
Loại file: ppt
Dung lượng: 6.15 MB
Lượt xem: 15
Lượt tải: 0
Xem trước 5 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Chương 16 trang bị cho người học những hiểu biết về kỹ thuật lập trình đệ quy. Trong chương này chúng ta sẽ cùng tìm hiểu một số nội dung cơ bản sau: Tổng quan về đệ quy, các vấn đề đệ quy thông dụng, phân tích giải thuật và khử đệ quy, các bài toán kinh điển. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Nhập môn lập trình - Chương 16: Kỹ thuật lập trình đệ quy &&VCVC BB BB Nộidung 1 Tổng quan về đệ quy 2 Các vấn đề đệ quy thông dụng 3 Phân tích giải thuật & khử đệ quy 4 Các bài toán kinh điển NMLTKỹthuậtlậptrìnhđệquy 1 &&VCVC BB BB Bàitoán Cho S(n) = 1 + 2 + 3 + … + n =>S(10)? S(11)? S(10) = 11 + 22 + … + 10 10 = 55 55 S(11) = 11 + 22 + … + 10 10 + 11 11 = 66 66 = S(10) + 11 11 = 55 55 + 11 11 = 66 66 NMLTKỹthuậtlậptrìnhđệquy 2 &&VCVC BB BB 2bướcgiảibàitoán Bước2.Thếngược ác định kết quả bài toán đồng S(n) = S(n1) + nn dạngtừ đơngiản đếnphứctạp Kếtquảcuốicùng. S(n1) = S(n2) + n1 n1 … = … + … … Bước1.Phântích S(1) = S(0) + 11 hân tích thành bài toán đồng dạngnhưngđơngiảnhơn. S(0) = 00 ừng lại ở bài toán đồng dạng đơn giản nhất có thể xác định ngaykếtquả. NMLTKỹthuậtlậptrìnhđệquy 3 &&VCVC BB BB Kháiniệmđệquy Kháiniệm Vấnđềđệquylàvấnđềđược địnhnghĩabằngchínhnó. Vídụ TổngS(n)đượctínhthôngqua tổngS(n1). 2điềukiệnquantrọng Tồntạibướcđệquy. Điềukiệndừng. NMLTKỹthuậtlậptrìnhđệquy 4 &&VCVC BB BB HàmđệquytrongNNLTC Khái niệm Một hàm được gọi là đệ quy nếu bên trong thân của hàm đó có lời gọi hàm lại chính nó một cách trực tiếp hay gián tiếp. … Hàm(…) … Hàm1(…) … Hàm2(…) { { { … … … … … … Lời gọi Hàm Lời gọi Hàm2 Lời gọi Hàmx … … … … … … … … … } } } ĐQtrựctiếp ĐQgiántiếp NMLTKỹthuậtlậptrìnhđệquy 5 &&VCVC BB BB Cấutrúchàmđệquy { (TS) Phầndừng if()(Basestep) { • Phầnkhởitínhtoánhoặcđiểm kếtthúccủathuậttoán … • Khôngchứaphầnđangđược return; địnhnghĩa } Phầnđệquy … (Recursionstep) …LờigọiHàm• Cósửdụngthuậttoánđang đượcđịnhnghĩa. … } NMLTKỹthuậtlậptrìnhđệquy 6 &&VCVC BB BB Phânloại Trong thân hàm có duy nhất một TUYẾN TÍNH 1 lời gọi hàm gọi lại chính nó một cáchtườngminh. Trong thân hàm có hai lời gọi NHỊ PHÂN 2 hàm gọi lại chính nó một cách ...
Nội dung trích xuất từ tài liệu:
Bài giảng Nhập môn lập trình - Chương 16: Kỹ thuật lập trình đệ quy &&VCVC BB BB Nộidung 1 Tổng quan về đệ quy 2 Các vấn đề đệ quy thông dụng 3 Phân tích giải thuật & khử đệ quy 4 Các bài toán kinh điển NMLTKỹthuậtlậptrìnhđệquy 1 &&VCVC BB BB Bàitoán Cho S(n) = 1 + 2 + 3 + … + n =>S(10)? S(11)? S(10) = 11 + 22 + … + 10 10 = 55 55 S(11) = 11 + 22 + … + 10 10 + 11 11 = 66 66 = S(10) + 11 11 = 55 55 + 11 11 = 66 66 NMLTKỹthuậtlậptrìnhđệquy 2 &&VCVC BB BB 2bướcgiảibàitoán Bước2.Thếngược ác định kết quả bài toán đồng S(n) = S(n1) + nn dạngtừ đơngiản đếnphứctạp Kếtquảcuốicùng. S(n1) = S(n2) + n1 n1 … = … + … … Bước1.Phântích S(1) = S(0) + 11 hân tích thành bài toán đồng dạngnhưngđơngiảnhơn. S(0) = 00 ừng lại ở bài toán đồng dạng đơn giản nhất có thể xác định ngaykếtquả. NMLTKỹthuậtlậptrìnhđệquy 3 &&VCVC BB BB Kháiniệmđệquy Kháiniệm Vấnđềđệquylàvấnđềđược địnhnghĩabằngchínhnó. Vídụ TổngS(n)đượctínhthôngqua tổngS(n1). 2điềukiệnquantrọng Tồntạibướcđệquy. Điềukiệndừng. NMLTKỹthuậtlậptrìnhđệquy 4 &&VCVC BB BB HàmđệquytrongNNLTC Khái niệm Một hàm được gọi là đệ quy nếu bên trong thân của hàm đó có lời gọi hàm lại chính nó một cách trực tiếp hay gián tiếp. … Hàm(…) … Hàm1(…) … Hàm2(…) { { { … … … … … … Lời gọi Hàm Lời gọi Hàm2 Lời gọi Hàmx … … … … … … … … … } } } ĐQtrựctiếp ĐQgiántiếp NMLTKỹthuậtlậptrìnhđệquy 5 &&VCVC BB BB Cấutrúchàmđệquy { (TS) Phầndừng if()(Basestep) { • Phầnkhởitínhtoánhoặcđiểm kếtthúccủathuậttoán … • Khôngchứaphầnđangđược return; địnhnghĩa } Phầnđệquy … (Recursionstep) …LờigọiHàm• Cósửdụngthuậttoánđang đượcđịnhnghĩa. … } NMLTKỹthuậtlậptrìnhđệquy 6 &&VCVC BB BB Phânloại Trong thân hàm có duy nhất một TUYẾN TÍNH 1 lời gọi hàm gọi lại chính nó một cáchtườngminh. Trong thân hàm có hai lời gọi NHỊ PHÂN 2 hàm gọi lại chính nó một cách ...
Tìm kiếm theo từ khóa liên quan:
Nhập môn lập trình Bài giảng Nhập môn lập trình Ngôn ngữ lập trình Kỹ thuật lập trình đệ quy Phân tích giải thuật Khử đệ quyGợi ý tài liệu liên quan:
-
Giáo trình Cấu trúc dữ liệu và thuật toán trên C++
74 trang 348 0 0 -
Đề cương chi tiết học phần Cấu trúc dữ liệu và giải thuật (Data structures and algorithms)
10 trang 303 0 0 -
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 256 0 0 -
Bài thuyết trình Ngôn ngữ lập trình: Hệ điều hành Window Mobile
30 trang 246 0 0 -
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 246 0 0 -
Giáo trình Lập trình cơ bản với C++: Phần 1
77 trang 229 0 0 -
Bài giảng Một số hướng nghiên cứu và ứng dụng - Lê Thanh Hương
13 trang 208 0 0 -
Giáo án Tin học lớp 11 (Trọn bộ cả năm)
125 trang 199 1 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 187 0 0 -
Bài tập lập trình Windows dùng C# - Bài thực hành
13 trang 160 0 0