Chuong 3 Ky Thuat De Qui

21 43 0
Chuong 3   Ky Thuat De Qui

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Chương 3 Kỹ thuật đệ qui 3.1. Khái niệm đệ quy Một hàm gọi đến chính hàm đó thì được gọi là đệ qui Định nghĩa số tự nhiên 0 là số tự nhiên bé nhất. Nếu k là số tự nhiên thì k + 1 cũng là số tự nhiên Như vậy, số tự nhiên bắt đầu từ 0, ta có các số tự nhiên là: 0 + 1 = 1, 1 + 1 = 2,… Chuỗi ký tự Chuỗi rỗng là một chuỗi ký tự. Một chuỗi ký tự ghép với một ký tự bất kỳ là một chuỗi ký tự. Tính giai thừa, n Khi n = 0 thì n = 1 Khi n > 0 thì n = (n 1) n Ước chung lớn nhất của hai số nguyên không âm m, n (với m >n) như sau: Nếu n = 0 thì UCLN(m, n) = m Nếu n ≠ 0 thì UCLN(m, n) = UCLN(n, m mod n)

Chương Kỹ thuật đệ qui 3.1 Khái niệm đệ quy  Một hàm gọi đến hàm gọi đệ qui  Định nghĩa số tự nhiên số tự nhiên bé Nếu k số tự nhiên k + số tự nhiên Như vậy, số tự nhiên 0, ta có số tự nhiên là: + = 1, + = 2,…  Chuỗi ký tự Chuỗi rỗng chuỗi ký tự Một chuỗi ký tự ghép với ký tự chuỗi ký tự 3.1 Khái niệm đệ quy  Tính giai thừa, n! Khi n = n! = Khi n > n! = (n - 1)! * n  Ước chung lớn hai số nguyên không âm m, n (với m >n) sau: Nếu n = UCLN(m, n) = m Nếu n ≠ UCLN(m, n) = UCLN(n, m mod n) 3.2 Hàm đệ quy  Hai bước giải toán đệ quy Bước 1: Phân tích tốn thành tốn đồng dạng đơn giản dừng lại toán đồng dạng đơn giản xác định kết Bước 2: Xác định kết toán đồng dạng từ đơn giản đến phức tạp để có kết cuối 3.2 Hàm đệ quy Cấu trúc hàm đệ quy () { if () { … return ; } Gọi lại hàm với tham số bé } 3.2 Hàm đệ quy Viết hàm tính n!, với n ≥ long Fac(int n) { if(n == 0) return 1; return n*Fac(n – 1); } 3.2 Hàm đệ quy  Đệ quy tuyến tính Trong thân hàm có lời gọi hàm gọi lại cách tường minh () { if () { … return ; } … (); … } 3.3 Phân loại đệ qui  Đệ quy tuyến tính Tính S(n) = + + … + n S(n) = S(n – 1) + n Điều kiện dừng: S(0) = long Tong(int n) { if (n == 0) return 0; return Tong(n–1) + n; } 3.3 Phân loại đệ qui  Đệ quy nhị phân Trong thân hàm có hai lời gọi hàm gọi lại cách tường minh () { if () { … return ; } … (); … … (); … } 3.3 Phân loại đệ qui  Đệ quy nhị phân Tính số hạng thứ n dãy Fibonacy f(0) = f(1) = f(n) = f(n – 1) + f(n – 2) n > Điều kiện dừng: f(0) = f(1) = long Fibo(int n) { if (n == || n == 1) return 1; return Fibo(n–1) + Fibo(n–2); } 10 3.3 Phân loại đệ qui  Đệ quy hỗ tương Trong thân hàm có lời gọi hàm tới hàm ngược lại () { if () { … return ; } … (); … } } () { if () { … return ; } … (); … } 11 3.3 Phân loại đệ qui  Đệ quy hỗ tương Tính số hạng thứ n dãy sau: x(0) = 1, y(0) = x(n) = x(n – 1) + y(n – 1) y(n) = 3*x(n – 1) + 2*y(n – 1) Điều kiện dừng: x(0) = 1, y(0) = long xn(int n) { if (n == 0) return 1; return xn(n-1) + yn(n-1); } long yn(int n) { if (n == 0) return 0; return 3*xn(n-1) + 2*yn(n-1); } 12 3.3 Phân loại đệ qui  Đệ quy phi tuyến Trong thân hàm có lời gọi hàm lại đặt bên thân vòng lặp () { if () { … return ; } … Vòng lặp { … (); } … } 13 3.3 Phân loại đệ qui  Đệ quy phi tuyến Tính số hạng thứ n dãy: x(0) = x(n) = n2x(0) + (n-1)2x(1) + … + 22x(n – 2) + 12x(n – 1) Điều kiện dừng: x(0) = long xn(int n) { if (n == 0) return 1; long s = 0; for (int i=1; i

Ngày đăng: 29/08/2019, 20:12

Từ khóa liên quan

Mục lục

  • Chương 3 Kỹ thuật đệ qui

  • 3.1. Khái niệm đệ quy

  • Slide 3

  • 3.2. Hàm đệ quy

  • Slide 5

  • Slide 6

  • Slide 7

  • 3.3. Phân loại đệ qui

  • Slide 9

  • Slide 10

  • Slide 11

  • Slide 12

  • Slide 13

  • Slide 14

  • 3.4. Các bước xây dựng hàm đệ quy

  • 3.5. Một số lỗi thường gặp

  • 3.6. Các vấn đề đệ quy thường gặp

  • Slide 18

  • Slide 19

  • Tổng kết

Tài liệu cùng người dùng

Tài liệu liên quan