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

Bài giảng Toán rời rạc: Chương 2 - Nguyễn Quỳnh Diệp

44 27 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

Bài giảng Toán rời rạc: Chương 2 Hàm và thuật toán cung cấp cho người học những kiến thức như: Hàm; Độ tăng của hàm; Thuật toán; Độ phức tạp của thuật toán. Mời các bạn cùng tham khảo!

CHƯƠNG HÀM VÀ THUẬT TOÁN Nguyễn Quỳnh Diệp diepnq@tlu.edu.vn File Bài giảng: goo.gl/Y3cpLF goo.gl/TYxXQD Nguyễn Quỳnh Diệp NỘI DUNG • Hàm • Độ tăng hàm • Thuật tốn • Độ phức tạp thuật tốn Tốn rời rạc Nguyễn Quỳnh Diệp 2.1 HÀM Toán rời rạc Nguyễn Quỳnh Diệp HÀM • Dùng để định nghĩa cấu trúc rời rạc dãy, xâu • Dùng để biểu diễn thời gian máy tính phải để giải toán Toán rời rạc Nguyễn Quỳnh Diệp HÀM Định nghĩa 1: Cho A B hai tập hợp Một hàm f từ A đến B gán xác phần tử B cho phần tử A Ta viết 𝒇 𝒂 = 𝒃 b phần tử B gán hàm f cho phần tử a A Nếu f hàm từ A đến B ta viết: 𝒇: 𝑨 → 𝑩 Toán rời rạc Nguyễn Quỳnh Diệp HÀM Định nghĩa 2: Nếu f hàm từ A đến B • A gọi miền xác định f B miền giá trị f • Nếu f(a) = b, b gọi ảnh a a nghịch ảnh b • Tập ánh xạ qua hàm f tập ảnh phần tử thuộc A • f ánh xạ A đến B Ví dụ: Cho A= {1, 2, 3}, B ={a, b, c} • • • • • Hàm f định nghĩa: → 𝑐, → 𝑎, → 𝑐 → 𝑐, c ảnh → 𝑎, nghịch ảnh a Miền xác định f {1, 2, 3}, miền giá trị f {a, b, c} Tập ánh xạ f {a, c} Toán rời rạc Nguyễn Quỳnh Diệp ĐƠN ÁNH Định nghĩa 5: Một hàm f gọi đơn ánh hay ánh xạ một-một 𝑓 𝑥 = 𝑓(𝑦) kéo theo x = y với x y miền xác định f Khơng đơn ánh Tốn rời rạc Đơn ánh Nguyễn Quỳnh Diệp ĐƠN ÁNH Các hàm sau có hàm đơn ánh khơng? Ví dụ 1: • Cho A = {1, 2, 3} B = {a, b, c}, hàm f cho sau: • → 𝑐, → 𝑎, → 𝑐 Ví dụ 2: • Cho g: 𝑍 → 𝑍 , với g(x) = 2x - Ví dụ 3: • Hàm f(x) = x2 , x thuộc tập số nguyên, miền giá trị f tập số nguyên Toán rời rạc Nguyễn Quỳnh Diệp 10 TOÀN ÁNH Định nghĩa 7: Một hàm f từ A đến B gọi toàn ánh với phần tử 𝑏 ∈ 𝐵 tồn phần tử 𝑎 ∈ 𝐴, với 𝑓 𝑎 = 𝑏 Tốn rời rạc Nguyễn Quỳnh Diệp 11 TỒN ÁNH Các hàm sau có hàm tồn ánh khơng? Ví dụ 1: • Hàm f: Z → Z, với f(x) = x + Ví dụ 2: • Hàm f(x) = x2 , x thuộc tập số nguyên, miền giá trị f tập số nguyên Toán rời rạc Nguyễn Quỳnh Diệp 12 MỘT SỐ THUẬT TỐN TÌM KIẾM Tìm kiếm tuyến tính • So sánh x với a1, x = a1 vị trí tìm • Khi x  a1 so sánh x với a2 • THUẬT TỐN : Thuật tốn tìm kiếm tuyến tính Procedure linear search (x: ngun, a1, a2, an: số nguyên phân biệt) i := while (𝑖 ≤ 𝑛 𝑣à 𝑥 ≠ 𝑎𝑖 ) i := i + if 𝑖 ≤ 𝑛 then location := i else location := { location số số hạng x khơng tìm x} Tốn rời rạc Nguyễn Quỳnh Diệp 32 MỘT SỐ THUẬT TỐN TÌM KIẾM Tìm kiếm nhị phân • Sử dụng cho dãy xếp tăng dần • So sánh phần tử x với số hạng dãy, trả vị trí cần tìm • Nếu x nhỏ tìm bên trái dãy • Nếu x lớn tìm bên phải dãy Ví dụ : • Tìm kiếm giá trị 15 dãy: 10 15 24 39 Toán rời rạc Nguyễn Quỳnh Diệp 33 MỘT SỐ THUẬT TỐN TÌM KIẾM THUẬT TỐN : Thuật tốn tìm kiếm nhị phân Procedure binary search (x: nguyên, a1, a2, an: số nguyên tăng dần) i := {i điểm mút trái khoảng tìm kiếm} j := n {j điểm mút phải khoảng tìm kiếm} while 𝑖 < 𝑗 begin m := (𝑖 + 𝑗)/2 if 𝑥 > 𝑎𝑚 then i:= m + else j:= m end if x = a then location :=i else location :=0 { location số số hạng x khơng tìm x} Tốn rời rạc Nguyễn Quỳnh Diệp 34 MỘT SƠ THUẬT TỐN SẮP XẾP Sắp xếp kiểu bọt • So sánh liên tiếp phần tử kề • Đổi chỗ cho chúng chưa có thứ tự Ví dụ : • Sắp xếp danh sách 3, 2, 4, 1, Vòng lặp Vòng lặp Vòng lặp Vòng lặp Đổi chỗ Cặp thứ tự Toán rời rạc Nguyễn Quỳnh Diệp 36 MỘT SỐ THUẬT TOÁN SẮP XẾP THUẬT TỐN : Thuật tốn xếp bọt Procedure bubble sort (a1, a2, an) for i:= to n -1 for j:=1 to n-i if aj > aj+1 then đổi chỗ aj aj+1 {a1, a2, , an xếp} Toán rời rạc Nguyễn Quỳnh Diệp 37 MỘT SỐ THUẬT TOÁN SẮP XẾP Sắp xếp kiểu chèn • Bắt đầu với phần tử thứ • So sánh phần tử thứ với phần tử thứ nhất: • Chèn vào trước phần tử thứ nhỏ • Chèn vào sau phần tử thứ lớn • So sánh phần tử thứ với phần tử thứ so sánh tiếp với phần tử thứ Ví dụ : • Sắp xếp danh sách 4, Toán rời rạc 3, 2, 1, 2, Nguyễn Quỳnh Diệp 38 MỘT SỐ THUẬT TỐN SẮP XẾP THUẬT TỐN : Thuật tốn xếp kiểu chèn Procedure insertion sort (a1, a2, an: số thực với 𝑛 ≥ 2) for j:= to n begin i:=1 while < aj i := i + m := aj for k:= j downto i+1 ak := ak-1 := m end {a1, a2, , an xếp} Toán rời rạc Nguyễn Quỳnh Diệp 39 BÀI TẬP  Bài 2: Sắp xếp danh sách 6, 2, 3, 1, 5, theo thứ tự tăng dần phương pháp: a) Sắp xếp kiểu bọt b) Sắp xếp kiểu chèn c) Sắp xếp kiểu lựa chọn (tham khảo sách) d) Sắp xếp kiểu chèn nhị phân (tham khảo sách) Toán rời rạc Nguyễn Quỳnh Diệp 40 2.4 ĐỘ PHỨC TẠP CỦA THUẬT TỐN Tốn rời rạc Nguyễn Quỳnh Diệp 41 ĐỘ PHỨC TẠP CỦA THUẬT TỐN Hiệu thuật tốn: • Thời gian mà máy tính sử dụng để giải tốn • Dung lượng nhớ địi hỏi thực thuật tốn Độ phức tạp thời gian: • Biểu diễn qua số phép toán dùng thuật tốn • Các phép tốn để đo: • Phép so sánh • Phép cộng, trừ, nhân, chia Ví dụ: Độ phức tạp thời gian thuật tốn tìm kiếm phần tử lớn (n) Toán rời rạc Nguyễn Quỳnh Diệp 42 ĐỘ PHỨC TẠP CỦA THUẬT TOÁN Độ phức tạp trường hợp xấu nhất: • Là trường hợp phải dùng tối đa phép toán để giải tốn theo thuật tốn xét Ví dụ 1: Xác định độ phức tạp trường hợp xấu thuật toán xếp kiểu bọt qua số phép so sánh Ví dụ 2: Xác định độ phức tạp trường hợp xấu thuật toán xếp kiểu chèn qua số phép so sánh Toán rời rạc Nguyễn Quỳnh Diệp 43 ĐỘ PHỨC TẠP CỦA THUẬT TOÁN Độ phức tạp trường hợp trung bình: • Tìm số bước trung bình phép tốn dùng để giải toàn giá trị đầu vào • Phức tạp phân tích trường hợp xấu Ví dụ 1: Mơ tả phân tích trường hợp trung bình thuật tốn tìm kiếm tuyến tính với giả thiết phần tử x có mặt bảng liệt kê dựa vào phép so sánh Toán rời rạc Nguyễn Quỳnh Diệp 44 ĐỘ PHỨC TẠP CỦA THUẬT TOÁN Các thuật ngữ thường dùng cho độ phức tạp tính tốn Độ phức tạp Thuật ngữ O(1) Độ phức tạp số O(logn) Độ phức tạp logarit O(n) Độ phức tạp tuyến tính O(nlogn) Độ phức tạp nlogn O(nb) Độ phức tạp đa thức O(bn) Độ phức tạp hàm mũ O(n!) Độ phức tạp giai thừa Toán rời rạc Nguyễn Quỳnh Diệp 45 ĐỘ PHỨC TẠP CỦA THUẬT TỐN Kích thước tốn n Các phép toán bit sử dụng logn n nlogn n2 2n n! 10 3.10-9s 10-8s 3.10-8s 10-7s 10-6s 3.10-3s 100 7.10-9s 10-7s 7.10-7s 10-5s 4.1013 năm * 1000 10-8s 10-6s 10-5s 10-3s * * 10000 1.3*10-9s 10-5s 10-4s 10-1s * * 105 1.7*10-8s 10-4s 2*10-3s 10s * * 106 2*10-8s 2*10-2s 17 phút * * Toán rời rạc 10-3s Nguyễn Quỳnh Diệp 46 Nguyễn Quỳnh Diệp 47 ... 7.1 0-7 s 1 0-5 s 4.1013 năm * 1000 1 0-8 s 1 0-6 s 1 0-5 s 1 0-3 s * * 10000 1.3*1 0-9 s 1 0-5 s 1 0-4 s 1 0-1 s * * 105 1.7*1 0-8 s 1 0-4 s 2* 1 0-3 s 10s * * 106 2* 1 0-8 s 2* 1 0-2 s 17 phút * * Toán rời rạc 1 0-3 s Nguyễn Quỳnh. .. Nguyễn Quỳnh Diệp 26 BÀI TẬP  Bài 4: Chứng minh rằng: a) 3x + (x) b) 2x2 + x – (x2) c) log10(x) (log2 (x)) Toán rời rạc Nguyễn Quỳnh Diệp 27 2. 3 THUẬT TỐN Tốn rời rạc Nguyễn Quỳnh Diệp 28 THUẬT... • • • • ? ?2, 1 = ? ? ?2, 1 = ?  -2 , 1 = ?  -2 , 1 = ? Toán rời rạc Nguyễn Quỳnh Diệp 15 BÀI TẬP  Bài 1: Hãy xác định xem hàm f:

Ngày đăng: 22/06/2021, 10:06

Xem thêm:

TỪ KHÓA LIÊN QUAN