
02/2012
Chương 6: Lập trình Hàm
(Phần 2)

2
02/2012
Nội dung
Kỹ thuật lập trình đệ quy
T ng quan v ổ ề đệ quy1
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

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
1 +
2
2 + … +
10
10
1
1 +
2
2 + … +
10
10
=
55
55
+
11
11 =
66
66
1
1+
2
2+ … +
10
10
=
=
S(10)
S(11)
1
1+
2
2+ … +
10
10
S(10)= +
11
11
= +
11
11
55
55 =
66
66
S(10)
+
11
11
55
55
+
11
11

4
02/2012
2 bước giải bài toán
Kỹ thuật lập trình đệ quy
=
S(n) +
n
nS(n-1)
=
S(n-1) +
n-1
n-1S(n-2)
=
…+
…
……
=
S(1) +
1
1S(0)
=
S(0)
0
0
Bước 1. Phân tích
hân tích thành bài toán đồng
dạng nhưng đơn giản hơn.
ừ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
á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.

5
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.