Slide 1 1 Phép lặp, quy nạp và đệ quy 2 Giải thuật đệ quy 3 Các bài toán liên quan đệ qui Lặp (interation) biến thể của cùng một thao tác Quy nạp (induction) kĩ thuật chứng minh các mệnh đề thuộc[.]
Trang 11. Phép lặp, quy nạp và đệ quy
2. Giải thuật đệ quy
3. Các bài toán liên quan đệ qui
Trang 2 Lặp (interation): biến thể của cùng một
Trang 4 Đệ quy (recursion): là một kĩ thuật định nghĩa một khái niệm trực tiếp hoặc gián tiếp theo chính nó
Trang 6a) Định nghĩa
Nếu lời giải P được thực hiện bằng lời giải P’ có dạng giống như P thì ta nói đó là lời giải đệ quy thuật toán đệ quy
Chú ý:
◦ P’ giống P
◦ P’ “nhỏ hơn” P theo nghĩa nào đó
Trang 7 Định nghĩa một hàm hay thủ tục đệ quy gồm hai phần:
(i) Phần neo (anchor): công việc đơn giản,
có thể giải trực tiếp mà không cần nhờ bài toán con
(ii) Phần đệ quy: TH bài toán không giải quyết bằng phần neo, ta xác định bài toán con và gọi đệ qui để giải bài toán con đó
Phần đệ quy thể hiện tính “quy nạp” của lời giải Phần neo đảm bảo cho tính dừng của thuật toán
Trang 8 3.1 Hàm tính giai thừa
3.2 Dãy số Fibonacci
Trang 11 Dựa vào bài toán cổ liên quan đến ss của các cặp thỏ
• Các cặp thỏ không bao giờ chết
• Hai tháng sau khi ra đời mỗi cặp thỏ sinh ra 1 cặp thỏ con (1 đực 1 cái)
• Mỗi tháng sau đó nó lại sinh ra 1 cặp mới
Trang 12 Giả sử đầu tháng 1 có 1 cặp thỏ ra đời thì đến giữa tháng n có bao nhiêu cặp thỏ?
Trang 14Cho biết số Fibonacci F 11 = 89 và F 12 = 144
Trang 16 Bài toán tháp Hà nội : Ngôi đền Benares có 03
cái cọc kim cương, Thượng đế đặt n chiếc đĩa bằng vàng:
- Có bán kính khác nhau
- Chồng lên nhau ở một chiếc cọc
- Theo thứ tự đĩa lớn ở dưới, đĩa nhỏ ở trên Các nhà sư lần lượt chuyển các đĩa sang một cọc khác theo quy tắc sau:
Trang 17 Khi chuyển một đĩa phải đặt vào một trong 03 cọc
Mỗi lần chỉ chuyển đúng một đĩa trên cùng tại một cọc và đặt vào trên cùng ở cọc chuyển đến
Đĩa lớn hơn không được phép đặt lên đĩa nhỏ hơn
Trang 19 Ví dụ, với trường hợp n=2 ta có thể chuyển như sau:
Chuyển đĩa nhỏ sang cọc 3
Chuyển đĩa lớn sang cọc 2
Chuyển đĩa từ cọc 3 sang cọc 2
Trang 20 Nếu n=1 thì chuyển đĩa duy nhất đó
Trang 22Nhược điểm:
◦ Lời gọi hàm tốn rất nhiều thời gian
◦ Thận trọng đừng để chạy vô hạn