1. Trang chủ
  2. » Thể loại khác

Giải thuật đệ quy

23 16 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 23
Dung lượng 564 KB

Nội dung

Chương I: Giải thuật đệ quy 10/11/22 Giải thuật đệ quy Khái niệm đệ quy Giải thuật đệ quy thủ tục đệ quy Ví dụ thủ tục đệ quy Hiệu lực đệ quy 10/11/22 Khái niệm đệ quy  Một đối tượng gọi đệ quy bao gồm phận định nghĩa dạng  Ví dụ:  Số tự nhiên - số tự nhiên - x số tự nhiên x-1 số tự nhiên  Hàm n giai thừa: n! - 0!=1; - n!=n*(n-1)! Nếu n>0; 10/11/22 Giải thuật đệ quy Giải thuật đệ quy: Nếu lời giải toán T thực lời giải tốn T’ giống T gọi lời giải đệ quy Thủ tục đệ quy: thường có phần - Phần neo (trường hợp suy biến): Có thể giải trực tiếp - Phần đệ quy: chưa thể giải trực tiếp mà gọi đến tốn giống 10/11/22 Thủ tục đệ quy Phân   loại thủ tục đệ quy: Thủ tục trực tiếp: thân thủ tục chứa lời gọi tới Thủ tục gián tiếp: thân thủ tục chứa lời gọi tới thủ tục khác mà thủ tục gọi tới (ABA) 10/11/22 Thủ tục đệ quy (tiếp)  Các đặc điểm thủ tục đệ quy trực tiếp:  Tồn trường hợp suy biến gọi giá trị neo làm kết thúc giải thuật đệ quy  Trong thân thủ tục chứa lời gọi tới  Sau lần gọi dần tới trường hợp suy biến 10/11/22 Thủ tục đệ quy (tiếp) Cách thực thủ tục đệ quy trực tiếp:  Chương trình gọi thủ tục đệ quy  đệ quy mức  Thủ tục đệ quy gọi tới nó đệ quy mức  Ở mức thứ i, thực phần mức thứ i kiểm tra điều kiện suy biến 10/11/22 Thủ tục đệ quy (tiếp) Ví dụ cách thực hiện: Procedure aaa(n:integer); Begin if n2 a, viết thủ tục đệ quy xác định giá trị phần tử thứ n dãy b, viết thủ tục lặp xác định giá trị phần tử thứ n dãy 10/11/22 20 Bài tập  Bài 3: Đưa định nghĩa đệ quy viết giải thuật đệ quy tính: a) Tổng n số nguyên dương b) an (với a n số nguyên dương) 10/11/22 21 Bài tập Bài 4: Viết thủ tục đệ quy nhằm in tất hoán vị n phần tử dãy số a = {a1,a2,…,an} Ví dụ:n=3, a1=1, a2=2,a3=3;thì in ra: 123; 132; 213; 231; 312; 321; (Gợi ý: để ý nhận xét: 123 132 231 213 312 321 10/11/22 22 Lời giải a) Định nghĩa ước số chung lớn hai số (m>=n) UCLN(m,n) = n m chia hết cho n UCLN (q,r) m không chia hết cho n (r phần dư m chia cho n ) b) Chương trình: int UCLN(int a, int b){ int r=a%b; if (r==0){ return b; }else{ return UCLN(b,r); } } 10/11/22 23

Ngày đăng: 11/10/2022, 01:01

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w