Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 97 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
97
Dung lượng
1,04 MB
Nội dung
Đệ quy Phạm Thi Vương 6/27/14 Nhập môn CTDL và Thuật toán 2 Ñeä quy? • Một khái niệm X gọi là định nghĩa theo đệ qui nếu trong chính định nghĩa X có sử dụng khái niệm X Ví dụ: 1. Định nghĩa Số tự nhiên: 0 là một số tự nhiên n > 0 là số tự nhiên nếu n – 1 là số tự nhiên 2. Định nghĩa n giai thừa 0! = 1 Nếu n >0 thì n! = n* (n-1)! 6/27/14 Nhập mơn CTDL và Thuật tốn 3 Đệ quy? • Đưa bài toán hiện tại về một bài toán cùng loại, cùng tính chất (đồng dạng) nhưng ở cấp độ thấp hơn, quá trình này tiếp tục cho đến khi bài toán đưa về cấp độ có thể giải được. • Đệ quy là kỹ thuật giải quyết vấn đề bằng cách giải quyết vấn đề nhỏ hơn cùng loại. 6/27/14 Nhập môn CTDL và Thuật toán 4 Ví dụ 1 if n = 0 n!= (n-1)!*n if n > 0 1 if n = 0 n!= 1*2*3*…*(n-1)*n if n > 0 • Định nghĩa số Số tự nhiên - 0 là một số tự nhiên. - n là số tự nhiên nếu n - 1 là số tự nhiên. 6/27/14 Nhập môn CTDL và Thuật toán 5 Cấu trúc chương trình Chương trình đệ qui gồm hai phần chính: 1. Phần cơ sở: Điều kiện thoát khỏi đệ qui 2. Phần đệ quy: Trong phần thân chương trình có lời gọi đến chính bản thân chương trình với giá trị mới của tham số nhỏ hơn giá trị ban đầu 6/27/14 Nhập môn CTDL và Thuật toán 6 Tính giai thöøa int Fact(int n) { if (n==0) // c sơ ở return 1; else return n * Fact (n-1); } 6/27/14 Nhập môn CTDL và Thuật toán 7 Minh họa Gọi hàm answer <- Fact(5) CT chính: Chưa xong: answer <- Fact (5) 6/27/14 Nhập môn CTDL và Thuật toán 8 Minh họa CT chính: Chưa xong: answer <- Fact (5) Fact. 1st: N=5, Chưa xong: 5*Fact(4) 6/27/14 Nhập môn CTDL và Thuật toán 9 Minh họa CT chính: Chưa xong: answer <- Fact (5) Fact. 1st: N=5, Chưa xong: 5*Fact(4) Fact. 2nd: N=4, Chưa xong: 4*Fact(3) 6/27/14 Nhập môn CTDL và Thuật toán 10 Minh họa CT chính: Chưa xong: answer <- Fact (5) Fact. 1st: N=5, Chưa xong: 5*Fact(4) Fact. 2nd: N=4, Chưa xong: 4*Fact(3) Fact. 3rd: N=3, Chưa xong: 3*Fact(2)