tailieunhanh - Chương 6: Lập trình Hà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 chế gọi hàm dùng STACK trong C phù hợp cho giải thuật đệ quy vì: Lưu thông tin chương trình còn dở dang mỗi khi gọi đệ quy. Thực hiện xong một lần gọi cần khôi phục thông tin chương trình trước khi gọi. Lệnh gọi cuối cùng sẽ hoàn tất đầu tiên. | 02/2012 Chương 6: Lập trình Hàm (Phần 2) 02/2012 Nội dung Kỹ thuật lập trình đệ quy Tổng quan về đệ quy 1 Các vấn đề đệ quy thông dụng 2 Phân tích giải thuật & khử đệ quy 4 Các bài toán kinh điển 3 02/2012 Bài toán Cho S(n) = 1 + 2 + 3 + + n =>S(10)? S(11)? Kỹ thuật lập trình đệ quy 1 + 2 + + 10 1 + 2 + + 10 = 55 + 11 = 66 1 + 2 + + 10 = = S(10) S(11) 1 + 2 + + 10 S(10) = + 11 = + 11 55 = 66 S(10) + 11 55 + 11 02/2012 2 bước giải bài toán Kỹ thuật lập trình đệ quy = S(n) + n S(n-1) = S(n-1) + n-1 S(n-2) = + = S(1) + 1 S(0) = S(0) 0 Bước 1. Phân tích Phân tích thành bài toán đồng dạng nhưng đơn giản hơn. Dừng lại ở bài toán đồng dạng đơn giản nhất có thể xác định ngay kết quả. Bước 2. Thế ngược Xác định kết quả bài toán đồng dạng từ đơn giản đến phức tạp Kết quả cuối cùng. 02/2012 Khái niệm đệ quy Kỹ thuật lập trình đệ quy Khái niệm Vấn đề đệ quy là vấn đề được định nghĩa bằng chính nó. Ví dụ Tổng S(n) được tính thông qua tổng S(n-1). 2 điều kiện quan trọng Tồn tại bước đệ quy. Điều kiện dừng. 02/2012 Hàm đệ quy trong NNLT C 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. Kỹ thuật lập trình đệ quy Hàm( ) { Lời gọi Hàm } ĐQ trực tiếp Hàm1( ) { Lời gọi Hàm2 } ĐQ gián tiếp Hàm2( ) { Lời gọi Hàm1 } 02/2012 Cấu trúc hàm đệ quy Kỹ thuật lập trình đệ quy { if () { return ; } Lời gọi Hàm } (TS) Phần dừng (Base step) Phần khởi tính toán hoặc điểm kết thúc của thuật toán Không chứa phần đang được định nghĩa Phần đệ quy (Recursion step) Có sử dụng thuật toán đang được định nghĩa. 02/2012 Phân loại Kỹ thuật lập trình đệ quy 2 TUYẾN TÍNH NHỊ PHÂN HỖ TƯƠNG PHI TUYẾN 1 3 4 Trong thân hàm có duy nhất một lời gọi hàm gọi lại chính nó một cách tường minh. Trong thân hàm có hai lời gọi hàm gọi lại chính nó một cách tường minh. Trong thân hàm này có lời gọi hàm | 02/2012 Chương 6: Lập trình Hàm (Phần 2) 02/2012 Nội dung Kỹ thuật lập trình đệ quy Tổng quan về đệ quy 1 Các vấn đề đệ quy thông dụng 2 Phân tích giải thuật & khử đệ quy 4 Các bài toán kinh điển 3 02/2012 Bài toán Cho S(n) = 1 + 2 + 3 + + n =>S(10)? S(11)? Kỹ thuật lập trình đệ quy 1 + 2 + + 10 1 + 2 + + 10 = 55 + 11 = 66 1 + 2 + + 10 = = S(10) S(11) 1 + 2 + + 10 S(10) = + 11 = + 11 55 = 66 S(10) + 11 55 + 11 02/2012 2 bước giải bài toán Kỹ thuật lập trình đệ quy = S(n) + n S(n-1) = S(n-1) + n-1 S(n-2) = + = S(1) + 1 S(0) = S(0) 0 Bước 1. Phân tích Phân tích thành bài toán đồng dạng nhưng đơn giản hơn. Dừng lại ở bài toán đồng dạng đơn giản nhất có thể xác định ngay kết quả. Bước 2. Thế ngược Xác định kết quả bài toán đồng dạng từ đơn giản đến phức tạp Kết quả cuối cùng. 02/2012 Khái niệm đệ quy Kỹ thuật lập trình đệ quy Khái niệm Vấn đề đệ quy là vấn đề được định nghĩa bằng chính nó. Ví dụ Tổng S(n) được tính thông qua tổng S(n-1). 2 .

TỪ KHÓA LIÊN QUAN