Bài giảng Kỹ thuật lập trình: Bài 3 - TS. Ngô Hữu Dũng
Số trang: 30
Loại file: pdf
Dung lượng: 648.65 KB
Lượt xem: 13
Lượt tải: 0
Xem trước 3 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Kỹ thuật lập trình: Bài 3 do TS. Ngô Hữu Dũng biên soạn cung cấp cho người học các kiến thức: Quy nạp toán học, lập trình đệ quy, cách hoạt động, khái niệm đệ quy, một số loại đệ quy, đệ quy tuyến tính,...
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình: Bài 3 - TS. Ngô Hữu DũngKỹ thuật lập trìnhBài 3 – Giải thuật đệ quyNgô Hữu Dũng61Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017Ngô Hữu DũngQuy nạp toán họcChứng minh hàm F(n) đúng với mọi số tự nhiên n ≥ N0.Phương pháp quy nạp:Bước cơ sở: Chỉ ra trường hợp ban đầu F(N0) đúngBước quy nạp: Chứng minh rằng giả sử F(k) đúng thì F(k+1) đúng.Ví dụ: Chứng minh S(n): 1 + 3 + 5 + 7 + …+ (2n-1) = n2 (*), với n ≥ 162Bước cơ sở: Trường hợp n = 1, ta có (2n-1) = n2 = 1 là đúng hiển nhiên.Bước quy nạp: Giả sử S(k) đúng, ta có 1 + 3 + 5 + ... + (2k – 1) = k2Khi đó: S(k+1): 1 + 3 + 5 + ... + (2k – 1) + [2(k+1) – 1] = k2 + (2k + 1)= (k + 1)2Vậy S(k + 1) = (k + 1)2 là đúng. Suy ra S(n) đúng với mọi n ≥ 1.Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017Ngô Hữu DũngLập trình đệ quyLập trình tính S(n) = 1 + 3 + 5 + … + (2n – 1) = n2 với n ≥ 1.Từ bài toán quy nạp ta có:Bước cơ sở: S(1) = 1Bước quy nạp: S(k+1) = S(k) + [2(k + 1) – 1] hay S(k) = S(k – 1) + (2k – 1)Phương pháp lập trình đệ quy:Phần cơ sở: S(1) = 1 Phần đệ quy: S(n) = S(n – 1) + (2n – 1)1. int S(int n)2. { Áp dụng vào lập trình:if (n==1) return 1;3.4.else return S(n-1) + (2*n – 1);5. }63Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017Ngô Hữu DũngCách hoạt động1. int S(int n)Giả sử n = 5,2. {hàm đệ quy chạy như sau:3.if (n==1) return 1;4.else return S(n-1) +S(5) = S(4) + 9 // Gọi hàm S(4)S(4) = S(3) + 7 // Gọi hàm S(3) 5. }// Gọi hàm S(2)S(3) = S(2) + 5// Gọi hàm S(1)S(2) = S(1) + 3S(1) = 1// Return S(1)S(2) = 1 + 3 // Return S(2)// Return S(3)S(3) = 1 + 3 + 5// Return S(4)S(4) = 1 + 3 + 5 + 7S(5) = 1 + 3 + 5 + 7 + 9 = 25 = 52 // Return S(5)64Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017Ngô Hữu Dũng(2*n–1);Khái niệm đệ quyKhái niệmThành phầnPhần cơ sở: Điều kiện thoátPhần đệ quy: Có phép gọi lại chính nóƯu điểmMột hàm gọi là đệ quy khi có phép gọi lại chính nó trong thân hàmThuận lợi trong việc giải những bài toán có tính chất quy nạpLàm gọn chương trìnhNhược điểm65Không tối ưu, tốn bộ nhớKỹ thuật lập trình | DHTH11C | HK1 | 2016-2017Ngô Hữu Dũng
Nội dung trích xuất từ tài liệu:
Bài giảng Kỹ thuật lập trình: Bài 3 - TS. Ngô Hữu DũngKỹ thuật lập trìnhBài 3 – Giải thuật đệ quyNgô Hữu Dũng61Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017Ngô Hữu DũngQuy nạp toán họcChứng minh hàm F(n) đúng với mọi số tự nhiên n ≥ N0.Phương pháp quy nạp:Bước cơ sở: Chỉ ra trường hợp ban đầu F(N0) đúngBước quy nạp: Chứng minh rằng giả sử F(k) đúng thì F(k+1) đúng.Ví dụ: Chứng minh S(n): 1 + 3 + 5 + 7 + …+ (2n-1) = n2 (*), với n ≥ 162Bước cơ sở: Trường hợp n = 1, ta có (2n-1) = n2 = 1 là đúng hiển nhiên.Bước quy nạp: Giả sử S(k) đúng, ta có 1 + 3 + 5 + ... + (2k – 1) = k2Khi đó: S(k+1): 1 + 3 + 5 + ... + (2k – 1) + [2(k+1) – 1] = k2 + (2k + 1)= (k + 1)2Vậy S(k + 1) = (k + 1)2 là đúng. Suy ra S(n) đúng với mọi n ≥ 1.Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017Ngô Hữu DũngLập trình đệ quyLập trình tính S(n) = 1 + 3 + 5 + … + (2n – 1) = n2 với n ≥ 1.Từ bài toán quy nạp ta có:Bước cơ sở: S(1) = 1Bước quy nạp: S(k+1) = S(k) + [2(k + 1) – 1] hay S(k) = S(k – 1) + (2k – 1)Phương pháp lập trình đệ quy:Phần cơ sở: S(1) = 1 Phần đệ quy: S(n) = S(n – 1) + (2n – 1)1. int S(int n)2. { Áp dụng vào lập trình:if (n==1) return 1;3.4.else return S(n-1) + (2*n – 1);5. }63Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017Ngô Hữu DũngCách hoạt động1. int S(int n)Giả sử n = 5,2. {hàm đệ quy chạy như sau:3.if (n==1) return 1;4.else return S(n-1) +S(5) = S(4) + 9 // Gọi hàm S(4)S(4) = S(3) + 7 // Gọi hàm S(3) 5. }// Gọi hàm S(2)S(3) = S(2) + 5// Gọi hàm S(1)S(2) = S(1) + 3S(1) = 1// Return S(1)S(2) = 1 + 3 // Return S(2)// Return S(3)S(3) = 1 + 3 + 5// Return S(4)S(4) = 1 + 3 + 5 + 7S(5) = 1 + 3 + 5 + 7 + 9 = 25 = 52 // Return S(5)64Kỹ thuật lập trình | DHTH11C | HK1 | 2016-2017Ngô Hữu Dũng(2*n–1);Khái niệm đệ quyKhái niệmThành phầnPhần cơ sở: Điều kiện thoátPhần đệ quy: Có phép gọi lại chính nóƯu điểmMột hàm gọi là đệ quy khi có phép gọi lại chính nó trong thân hàmThuận lợi trong việc giải những bài toán có tính chất quy nạpLàm gọn chương trìnhNhược điểm65Không tối ưu, tốn bộ nhớKỹ thuật lập trình | DHTH11C | HK1 | 2016-2017Ngô Hữu Dũng
Tìm kiếm theo từ khóa liên quan:
Kỹ thuật lập trình Bài giảng Kỹ thuật lập trình Giải thuật đệ quy Quy nạp toán học Đệ quy nhị phân Đệ quy hỗ tươngTài liệu liên quan:
-
Kỹ thuật lập trình trên Visual Basic 2005
148 trang 267 0 0 -
NGÂN HÀNG CÂU HỎI TRẮC NGHIỆM THIẾT KẾ WEB
8 trang 209 0 0 -
Giới thiệu môn học Ngôn ngữ lập trình C++
5 trang 196 0 0 -
Bài giảng Nhập môn về lập trình - Chương 1: Giới thiệu về máy tính và lập trình
30 trang 169 0 0 -
Luận văn: Nghiên cứu kỹ thuật giấu tin trong ảnh Gif
33 trang 153 0 0 -
Báo cáo thực tập Công nghệ thông tin: Lập trình game trên Unity
27 trang 119 0 0 -
Giáo trình về phân tích thiết kế hệ thống thông tin
113 trang 114 0 0 -
LUẬN VĂN: Tìm hiểu kỹ thuật tạo bóng cứng trong đồ họa 3D
41 trang 109 0 0 -
Bài giảng Kỹ thuật lập trình - Chương 10: Tổng kết môn học (Trường Đại học Bách khoa Hà Nội)
67 trang 106 0 0 -
Giáo trình Nhập môn lập trình VB6: Phần 2
184 trang 93 0 0