Chương 3 cung cấp cho người học những kiến thức về lập trình đệ qui. Các nội dung chính của chương này gồm có: Tổng quan về lập trình đệ qui, đệ qui tuyến tính, đệ qui nhị phân, đệ qui phi tuyến, đệ qui tương hỗ. Mời các bạn cùng tham khảo.
Chương 3: LẬP TRÌNH ĐỆ QUI Tổng quan lập trình đệ qui Đệ qui tuyến tính Đệ qui nhị phân Đệ qui phi tuyến Đệ qui tương hỗ 1.Tổng quan lập trình đệ qui • Đệ qui hàm cho phép gọi đến hàm • Trong lập trình đệ qui bao gồm phần: – Phần neo:Là phần sở, cho phép tính giá trị cụ thể – Phần đệ qui:Cho phép gọi lại hàm để tính giá trị hàm cách gọi hàm tính giá trị bước trước • Có loại đệ qui đệ qui tuyến tính, đệ qui nhị phân, đệ qui phi tuyến đệ qui tương hỗ 2 Đệ qui tuyến tính • Là loại hàm đệ qui phổ biến • Nó có cú pháp sau: Ham { if() { Trả kết kết thúc công việc } else { Thực hiên công việc – cần Gọi đệ qui } } Đệ qui tuyến tính • Ví dụ: Viết hàm đệ qui tính n! – Định nghĩa: n! = 1x2x….x(n-1)xn Ta có: • • • • • • 1!=1; 2! = x X 1! 3! = x x X 2! 4! = x x x x 3! … n!=1 x x x….x (n-1) x n (n-1)! x n Đệ qui nhị phân • Là loại hàm đệ qui cho phép chia thành việc nhỏ hơn, khơng cồng kềnh • Cú pháp Ham { if() { Trả kết kết thúc công việc } else { Thực hiên công việc – cần Gọi đệ qui 1()//Giải việc nhỏ Gọi đệ qui 2()//Giải phần lại } } Đệ qui nhị phân • Ví dụ: – Tìm số fibo thứ n tính cách: • Tìm F(n-1) • Tìm F(n-2) • ret=F(n -1)+F(n-2); – Tìm phần tử lớn nhất, bé mảng • Tìm giá trị lớn bên trái • Tìm giá trị lớn bên phải • So sánh giá trị lớn nhất, nhỏ bên trái, bên phải tìm giá trị lớn nhất, nhỏ 4 Đệ qui phi tuyến • Đệ qui phi tuyến cho phép gọi đệ qui bên vịng lặp • Cú pháp Ham { for(i=0;i=1 Nếu n = => Xo =1 n = => X1 = n = => 22x1 +12x1 = n = => 32x1 + 22 x + 1x5 = 18 n = => 42x1+32x1+22x5+12x18 = 63 Đệ qui tương hỗ • • Là loại hàm đệ qui gọi lại thơng qua hàm khác Cú pháp: Ham1 { //Làm số việc cần Ham2( ); //Làm số việc cần } Ham2 { //Làm số việc cần Ham1( ); //Làm số việc cần } Đệ qui tương hỗ • Ví dụ: Hai dãy {Xn}, {Yn} định nghĩa Xo=Yo = Xn=Xn-1 + Yn-1 Yn=n2Xn-1 + Yn-1 Nếu n =0 => Xo = Yo = n = => X1 = 1+1 = Y1 = 12x1 + = n =2 => X2 = + = Y2= 22x2 + = 10 …… ... hàm c? ?ch gọi hàm tính giá trị bư? ?c trư? ?c • C? ? loại đệ qui đệ qui tuyến tính, đệ qui nhị phân, đệ qui phi tuyến đệ qui tương hỗ 2 Đệ qui tuyến tính • Là loại hàm đệ qui phổ biến • Nó c? ? c? ? pháp...1.Tổng quan lập trình đệ qui • Đệ qui hàm cho phép gọi đến hàm • Trong lập trình đệ qui bao gồm phần: – Phần neo:Là phần sở, cho phép tính giá trị c? ?? thể – Phần đệ qui: Cho phép gọi lại hàm... hơn, không c? ??ng kềnh • C? ? pháp Ham { if() { Trả kết kết th? ?c công vi? ?c } else { Th? ?c hiên c? ?ng vi? ?c – c? ??n Gọi đệ qui 1()//Giải vi? ?c nhỏ Gọi đệ qui 2()//Giải