1. Trang chủ
  2. » Giáo án - Bài giảng

Chuong 3 Ky Thuat De Qui

21 44 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 21
Dung lượng 89 KB

Nội dung

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

w