Bài giảng Lập trình Java: Bài 11 - Bùi Trọng Tùng
Số trang: 13
Loại file: pdf
Dung lượng: 451.05 KB
Lượt xem: 22
Lượt tải: 0
Xem trước 2 trang đầu tiên của tài liệu này:
Thông tin tài liệu:
Bài giảng Lập trình Java - Bài 11: Thuật toán đệ quy. Sau khi học xong bài 11, người học có thể nắm bắt được một số kiến thức cơ bản như: Thuật toán đệ quy và hàm đệ quy là gì? Thuật toán đệ quy hoạt động như thế nào? Một số thuật toán đệ quy đơn giản. Mời các bạn cùng tham khảo.
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình Java: Bài 11 - Bùi Trọng Tùng 04/10/2014 BÀI 11. THUẬT TOÁN ĐỆ QUY 1Nội dung• Thuật toán đệ quy và hàm đệ quy là gì?• Thuật toán đệ quy hoạt động như thế nào?• Một số thuật toán đệ quy đơn giản 2 1 04/10/2014 1. THUẬT TOÁN ĐỆ QUY LÀ GÌ? 3Khái niệm “đệ quy” Sierpinksi triangle Droste effect• Đối tượng đệ quy: là đối tượng mà một phần hoặc toàn bộ đối tượng được định nghĩa thông qua chính nó • Quy nạp toán học• Quá trình đệ quy: là quá trình mà một phần hoặc toàn bộ quá trình tự lặp lại theo cùng một cách 4 2 04/10/2014Đệ quy – Ví dụ• Định nghĩa số tự nhiên: • 0 là số tự nhiên • n là số tự nhiên nếu n-1 cũng là số tự nhiên• Dãy số: • Dãy số là một số • Dãy số là một số và sau đó là một dãy số• Một số thuật ngữ: • PHP = PHP: Hypertext Preprocessor • GNU = GNU’s Not Unix 5Thuật toán đệ quy• Thuật toán đệ quy là thuật toán mà trong các bước thực hiện tự thực hiện lại chính nó với đầu vào nhỏ hơn(kích thước, giá trị, mức độ phức tạp…)• Tư tưởng của thuật toán đệ quy là đưa bài toán cần giải về bài toán đồng dạng nhưng ở mức độ thấp hơnVí dụ: Tính dãy số Fibonacci, n!• Tại sao dùng đệ quy: • Một số thuật toán trong cách thức thực hiện mặc nhiên có tính đệ quy • Một số thuật toán rất khó tìm ra lời giải có thể sử dụng kỹ thuật đệ quy để giải quyết. Ví dụ: Bài toán tháp Hà Nội • 6 3 04/10/2014Thuật toán đệ quy(tiếp)• Để xây dựng thuật toán đệ quy, cần xác định: • Trường hợp cơ bản: (Các) trường hợp không cần thực hiện lại thuật toán, có thể xác định được ngay kết quả đầu ra • Phần tổng quát: Có yêu cầu gọi đệ quy • Cần xác định nguyên lý đưa trường hợp tổng quát về trường hợp cơ bản • Đảm bảo tính dừng của giải thuật đệ quy - chắc chắn từ trường hợp tổng quát sẽ đến được trường hợp cơ bản• Hàm/Phương thức đệ quy: Hàm/Phương thức có lời gọi tới chính nó 7Các thức hoạt động của thuật toán đệ quy• Để hiểu các thức thực hiện của thuật toán đệ quy, xem xét ví dụ tính n! sau 1, =0 1, =0 != != × − 1 × ⋯ × 2 × 1, >0 × − 1 !, > 0Sử dụng vòng lặp Sử dụng đệ quyint fact(int n) { int fact(int n) { int result = 1; if (n == 0) for (int i=1;i 04/10/2014Đệ quy tính n! 120 fact(5) 5* fact(4) 24 fact(n): if (n == 0) return 1; 4* fact(3) 6 else return n * fact(n-1); 3* fact(2) 2 2* fact(1) 1 1* fact(0) 1 1 9Tính n!public class Factorial{ public int fact(int n){ if n == 0 return 1; else return n*fact(n-1); } public static void main(){ System.out.println(n + “! = ” + fact(n)); }} 10 5 04/10/2014Lớp chứa tham chiếu có kiểu chính nópublic class MyClass{ private E element; private MyClass reference; public MyClass(E item){ element = item; reference = null } public setRef ...
Nội dung trích xuất từ tài liệu:
Bài giảng Lập trình Java: Bài 11 - Bùi Trọng Tùng 04/10/2014 BÀI 11. THUẬT TOÁN ĐỆ QUY 1Nội dung• Thuật toán đệ quy và hàm đệ quy là gì?• Thuật toán đệ quy hoạt động như thế nào?• Một số thuật toán đệ quy đơn giản 2 1 04/10/2014 1. THUẬT TOÁN ĐỆ QUY LÀ GÌ? 3Khái niệm “đệ quy” Sierpinksi triangle Droste effect• Đối tượng đệ quy: là đối tượng mà một phần hoặc toàn bộ đối tượng được định nghĩa thông qua chính nó • Quy nạp toán học• Quá trình đệ quy: là quá trình mà một phần hoặc toàn bộ quá trình tự lặp lại theo cùng một cách 4 2 04/10/2014Đệ quy – Ví dụ• Định nghĩa số tự nhiên: • 0 là số tự nhiên • n là số tự nhiên nếu n-1 cũng là số tự nhiên• Dãy số: • Dãy số là một số • Dãy số là một số và sau đó là một dãy số• Một số thuật ngữ: • PHP = PHP: Hypertext Preprocessor • GNU = GNU’s Not Unix 5Thuật toán đệ quy• Thuật toán đệ quy là thuật toán mà trong các bước thực hiện tự thực hiện lại chính nó với đầu vào nhỏ hơn(kích thước, giá trị, mức độ phức tạp…)• Tư tưởng của thuật toán đệ quy là đưa bài toán cần giải về bài toán đồng dạng nhưng ở mức độ thấp hơnVí dụ: Tính dãy số Fibonacci, n!• Tại sao dùng đệ quy: • Một số thuật toán trong cách thức thực hiện mặc nhiên có tính đệ quy • Một số thuật toán rất khó tìm ra lời giải có thể sử dụng kỹ thuật đệ quy để giải quyết. Ví dụ: Bài toán tháp Hà Nội • 6 3 04/10/2014Thuật toán đệ quy(tiếp)• Để xây dựng thuật toán đệ quy, cần xác định: • Trường hợp cơ bản: (Các) trường hợp không cần thực hiện lại thuật toán, có thể xác định được ngay kết quả đầu ra • Phần tổng quát: Có yêu cầu gọi đệ quy • Cần xác định nguyên lý đưa trường hợp tổng quát về trường hợp cơ bản • Đảm bảo tính dừng của giải thuật đệ quy - chắc chắn từ trường hợp tổng quát sẽ đến được trường hợp cơ bản• Hàm/Phương thức đệ quy: Hàm/Phương thức có lời gọi tới chính nó 7Các thức hoạt động của thuật toán đệ quy• Để hiểu các thức thực hiện của thuật toán đệ quy, xem xét ví dụ tính n! sau 1, =0 1, =0 != != × − 1 × ⋯ × 2 × 1, >0 × − 1 !, > 0Sử dụng vòng lặp Sử dụng đệ quyint fact(int n) { int fact(int n) { int result = 1; if (n == 0) for (int i=1;i 04/10/2014Đệ quy tính n! 120 fact(5) 5* fact(4) 24 fact(n): if (n == 0) return 1; 4* fact(3) 6 else return n * fact(n-1); 3* fact(2) 2 2* fact(1) 1 1* fact(0) 1 1 9Tính n!public class Factorial{ public int fact(int n){ if n == 0 return 1; else return n*fact(n-1); } public static void main(){ System.out.println(n + “! = ” + fact(n)); }} 10 5 04/10/2014Lớp chứa tham chiếu có kiểu chính nópublic class MyClass{ private E element; private MyClass reference; public MyClass(E item){ element = item; reference = null } public setRef ...
Tìm kiếm theo từ khóa liên quan:
Lập trình Java Bài giảng Lập trình Java Ngôn ngữ lập trình Java Thuật toán đệ quy Hàm đệ quy Bài toán tháp Hà NộiTài liệu liên quan:
-
Giáo trình Lập trình hướng đối tượng: Phần 2
154 trang 277 0 0 -
Giáo trình Toán rời rạc: Phần 1 - Nguyễn Gia Định
67 trang 232 0 0 -
80 trang 222 0 0
-
Lý thuyết ngôn ngữ lập trình C++ dành cho sinh viên: Phần 2
276 trang 129 0 0 -
Excel add in development in c and c phần 9
0 trang 110 0 0 -
Program C Ansi Programming Embedded Systems in C and C++ phần 4
12 trang 98 0 0 -
Lập trình Java cơ bản : GUI nâng cao part 3
6 trang 85 0 0 -
265 trang 83 0 0
-
Bài giảng Ngôn ngữ lập trình Java: Applet - TS. Nguyễn Thị Hiền
34 trang 72 0 0 -
81 trang 69 0 0