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
2/4/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)!
2/4/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.
2/4/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.
2/4/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
2/4/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);
}
2/4/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)
2/4/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)
2/4/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)
2/4/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)
[...]... xong: answer . returns 5 *24
2/ 4/14 Nhập môn CTDL và Thuật toán 19
Minh họa
CT chính: xong: answer <- 120
2/ 4/14 Nhập mơn CTDL và Thuật tốn 20
Tính giai thừa không đệ quy
•
Dùng. 5*Fact(4)
Fact. 2nd: N=4, Chưa xong: 4*Fact(3)
Fact. 3rd: N=3, Chưa xong: 3*Fact (2)
Fact. 4th: N =2, Chưa xong: 2* Fact(1)
Fact. 5th: N=1, Chưa xong: 1*Fact(0)
2/ 4/14