Professional Documents
Culture Documents
Buoi 2
Buoi 2
LOGO
Khái niệm về đệ qui
Đệ quy: Đưa ra 1 định nghĩa có sử dụng
chính khái niệm đang cần định nghĩa(
quay về).
Ví dụ
Người = con của hai người khác.
Trong toán học:
• Số tự nhiên: 0 là số tự nhiên, n là số tự nhiên nếu
n- 1 là số tự nhiên
• Hàm n!
Giải thuật và hàm đệ quy
A() B()
A() B()
C()
Cài đặt hàm đệ quy
P (<tham số>)
{
if (điều kiện dừng)
{
<Xử lý trường hợp neo>
}
Else
{
<Thực hiện một số công việc (nếu có)>
P(<tham số>);
<Thực hiện một số công việc (nếu có)>
}
}
Một số dạng giải thuật đệ quy
đơn giản thường gặp (tt)
Ví dụ 1 : Hàm Fact(n) tính số hạng n của dãy
n!, định nghĩa như sau:
fact0 =1 ;
fn = n*factn-1; (n>=1)
longint Fact(int n)
{
if (n==0)
return 1;
else
return n*Fact(n-1);
}
Một số dạng giải thuật đệ quy
đơn giản thường gặp (tt)
int Fibo(int n)
{
if ( n < 2 )
return 1 ;
else
return (Fibo(n -1) + Fibo(n -2)) ;
}
Một số dạng giải thuật đệ quy
đơn giản thường gặp (tt)
Đệ quy phi tuyến.
Một số dạng giải thuật đệ quy
đơn giản thường gặp (tt)
Đệ quy phi tuyến.
P (<danh sách tham số>) {
for (int i = 1; i<=n; i++)
{
<Thực hiện một số công việc (nếu có)>
if (điều kiện dừng)
{
<Xử lý trường hợp neo>
}
else
{
<Thực hiện một số công việc (nếu có)>
P (<danh sách tham số>);
}
}
}
Một số dạng giải thuật đệ quy
đơn giản thường gặp (tt)
int X(int n ) ;
{ if ( n == 0 ) return 1 ;
else
{ int tg = 0 ;
for (int i = 0 ; i<n ; i++ ) tg = tg + sqr(n-i)*X(i);
return ( tg ) ;
}
Một số dạng giải thuật đệ quy
đơn giản thường gặp (tt)
Đệ qui tương hỗ:
Một số dạng giải thuật đệ quy
đơn giản thường gặp (tt)
Đệ qui tương hỗ: