Slide môn toán rời rạc CHƯƠNG 1: THUẬT TOÁN ( TRƯỜNG ĐẠI HỌC MỎ ĐỊA CHẤT)

78 18 0
Slide môn toán rời rạc CHƯƠNG 1: THUẬT TOÁN ( TRƯỜNG ĐẠI HỌC MỎ  ĐỊA CHẤT)

Đ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

SLIDE MÔN TOÁN RỜI RẠC GIÚP CÁC BẠN SINH VIÊN DỄ DÀNG HỌC TẬP TRONG MMON HỌC NÀY, SLIDE NÀY CHỈ GỒM CHƯƠNG 1 MÌNH SẼ UPDATE TIẾP MONG CÁC BẠN THEO DỖI :BBBBBBBBBBBBBBBBBBBBBBBBBBBBBB

TOÁN RỜI RẠC CHO CNTT (DISCRETE MATHEMATICS FOR INFORMATION TECHNOLOGY) GV: Đặng Hữu Nghị Sđt: 0989640319 Email: nghidanghuu@gmail.com TÀI LIỆU THAM KHẢO Nguyễn Đức Nghĩa, Nguyễn Tơ Thành Tốn rời rạc NXB Đại học QG Hà Nội 2006 Đỗ Đức Giáo Toán rời rạc ứng dụng tin học NXB Giáo dục 2008 Kenneth H Rosen (Phạm Văn Thiều, Đặng Hữu Thịnh dịch) Toán rời rạc ứng dụng tin học NXB Khoa học Kỹ thuật Hà Nội 2003 Thực hành Ngôn ngữ lập trình C sử dụng trình biên dịch: Turbo C++ 4.0  Hoặc Dev C++  CHƯƠNG 1: THUẬT TỐN 1.1 Khái niệm thuật tốn 1.2 Các đặc trưng thuật tốn 1.3 Ngơn ngữ thuật tốn 1.4 Độ phức tạp thuật toán 1.5 Đệ quy 1.1 KHÁI NIỆM VỀ THUẬT TỐN  Q trình giải tốn máy tính biểu diễn theo sơ đồ chung sau: 1.1 KHÁI NIỆM VỀ THUẬT TỐN  Thuật tốn khái niệm sở tin học Khái niệm thuật toán hiểu theo nghĩa trực giác sau:  Thuật toán hệ thống chặt chẽ rõ ràng quy tắc nhằm xác định dãy thao tác đối tượng, cho sau số hữu hạn bước thực thao tác ta đạt mục tiêu định trước 1.1 KHÁI NIỆM VỀ THUẬT TỐN Ví dụ: Thuật tốn tìm ước số chung lớn (ƯCLN) hai số nguyên dương a b sau:  Bước 1: Nhập số liệu a b, thực bước (2)  Bước 2: Nếu a = b thơng báo kết ƯCLN a, dừng thuật toán Nếu a  b thực bước (3)  Bước 3: Nếu a > b gán a = a - b, a < b gán b = b - a, thực bước (2) 1.2 CÁC ĐẶC TRƯNG CỦA THUẬT TỐN Tính phổ dụng: thuật tốn khơng đề cập toán riêng lẻ, mà phải bao hàm lớp tốn kiểu  Tính hữu hạn: hay cịn gọi tính kết thúc (tính dừng), thuật toán phải dừng sau số hữu hạn bước thực  Tính quán: hay cịn gọi tính xác định thuật tốn Đặc trưng thể bước thao tác phải rõ ràng, gây nên nhập nhằng, lẫn lộn, tuỳ tiện Nói cách khác, điều kiện, hai xử lý (người máy) thực bước thuật tốn phải cho kết  1.2 CÁC ĐẶC TRƯNG CỦA THUẬT TOÁN Đại lượng vào: Một thuật tốn có nhiều đại lượng vào mà thường gọi liệu vào  Đại lượng ra: Sau dừng thuật toán, tuỳ theo chức mà thuật tốn đảm nhiệm thu số đại lượng xác định  1.2 CÁC ĐẶC TRƯNG CỦA THUẬT TỐN  Tính hiệu quả: Yêu cầu tính hiệu thuật toán đắn, cụ thể với liệu vào cho trước, thuật toán hoạt động sau số hữu hạn bước dừng cho kết mong muốn  Yêu cầu thứ hai tính hiệu tính hữu hiệu: Trong số thuật toán thực chức năng, chọn thuật toán tốt Tiêu chuẩn tốt hiểu là:    Thuật toán thực nhanh, tốn thời gian Thuật tốn dùng chỗ để lưu trữ kết trung gian 1.3 NGÔN NGỮ THUẬT TỐN  Có thể biểu diễn thuật tốn cách sau: Bằng lời  Bằng giả mã  Bằng sơ đồ khối   Ở xem xét việc biểu diễn thuật toán sơ đồ khối, ưu điểm bật tính trực quan 10 1.6 ĐỆ QUY  Đệ quy phi tuyến  Hàm đệ quy phi tuyến hàm mà thân hàm có lời gọi hàm gọi lại đặt bên vịng lặp  Thuật toán đệ quy phi tuyến: 64 1.6 ĐỆ QUY () { for(int i = 1; i 0) Các hàm đệ quy sau: 70 1.6 ĐỆ QUY long TinhXn(int n) { if (n == ) return 1; return TinhXn(n – 1) + TinhYn(n – 1); } long TinhYn(int n) { if (n == ) return 1; return n*n*TinhXn(n – 1) + TinhYn(n – 1); } 71 1.6 ĐỆ QUY (BÀI TẬP) Bài 1: Xây dựng hàm để tính S = + + + … + n theo phương pháp đệ quy  Công thức tổng quát cho là:  S(0) =  S(n) = S(n-1) + n 72 1.6 ĐỆ QUY (BÀI TẬP) Hàm tính tổng 1+2+…+n theo phương pháp đệ quy int tong(int n) { if(n==0) return 0; else return tong(n-1)+n; } 73 1.6 ĐỆ QUY (BÀI TẬP) #include #include using namespace std; int tong(int n) { if(n==0) return 0; else return (tong(n-1)+n); } int main() { int n,s; printf("Nhap n = "); scanf("%d",&n); s = tong(n); printf("Tong day = %d",s); } 74 1.6 ĐỆ QUY (BÀI TẬP) Bài 2: Tìm ƯSCLN sử dụng giải thuật Euclid Cho a, b hai số nguyên (giả sử a ≥ b), để tìm ước chung lớn hai số a b ta cần thực chia a cho b thương q số dư r (r ≥ 0) tức a = b*q + r, ta có:  75 1.6 ĐỆ QUY (BÀI TẬP) Hàm tìm ƯSCLN int gcd(int a, int b) { if(b==0) return a; else return gcd(b,a%b); } 76 1.6 ĐỆ QUY (BÀI TẬP) #include #include using namespace std; int gcd(int a, int b) { if(b==0) return a; else return gcd(b,a%b); } int main() { int a,b; printf("Nhap vao so a va b: "); scanf("%d %d",&a,&b); printf("USCLN cua %d va %d la %d",a,b,gcd(a,b)); } 77 1.6 ĐỆ QUY (BÀI TẬP) Bài 3: Tính xn  Cơng thức  x0 =  xn = x * xn-1 78 ... nn 1 1 2 4 4 16 64 16 24 256 8 24 64 512 256 40320 13 4 217 728 16 16 64 256 4096 65536 ~ 21. 1 012 ~18 .10 18 32 32 16 0 10 24 32768 2 .14 7.483.648 ~26 .10 61 ~1. 5x1056 64 64 384 4096 26 214 4 ~1. 8x1027 ~1. 3x1097... Ngơn ngữ thuật toán 1. 4 Độ phức tạp thuật toán 1. 5 Đệ quy 1. 1 KHÁI NIỆM VỀ THUẬT TOÁN  Quá trình giải tốn máy tính biểu diễn theo sơ đồ chung sau: 1. 1 KHÁI NIỆM VỀ THUẬT TỐN  Thuật tốn khái... tuyển Biểu thức g1 L1 g2 L2 gi Li gn Ln Ln +1 14 1. 3 NGƠN NGỮ THUẬT TỐN  Cấu trúc chu trình / lặp  Lặp theo tham biến 15 1. 3 NGƠN NGỮ THUẬT TỐN  Lặp theo điều kiện 16 1. 3 NGƠN NGỮ THUẬT TỐN Begin

Ngày đăng: 17/01/2022, 07:29

Tài liệu cùng người dùng

Tài liệu liên quan