Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 1: Tổng quan - Nguyễn Thị Khiêm Hòa

Nội dung

 Cấu trúc dữ liệu và thuật toán

 Thuật toán và các đặc trưng của thuật toán

 Diễn đạt thuật toán

 Kiểu dữ liệu, ADT, cấu trúc dữ liệu

 Phân tích và thiết kế thuật toán

 Thiết kế thuật toán

 Phân tích thuật toán

 Một số lớp các thuật toán

pdf65 trang | Chia sẻ: phuongt97 | Lượt xem: 709 | Lượt tải: 0download
Bạn đang xem trước 20 trang nội dung tài liệu Bài giảng Cấu trúc dữ liệu và giải thuật - Chương 1: Tổng quan - Nguyễn Thị Khiêm Hòa, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
Chương 1: Tổng quan Giảng viên: Ths. Nguyễn Thị Khiêm Hòa Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM Nội dung  Cấu trúc dữ liệu và thuật toán  Thuật toán và các đặc trưng của thuật toán  Diễn đạt thuật toán  Kiểu dữ liệu, ADT, cấu trúc dữ liệu  Phân tích và thiết kế thuật toán  Thiết kế thuật toán  Phân tích thuật toán  Một số lớp các thuật toán Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 2 Mục tiêu  Tìm hiểu các nội dung:  Thiết kế và phân tích được thuật toán.  Hiểu rõ về kiểu dữ liệu, kiểu dữ liệu trừu tượng, cấu trúc dữ liệu.  Đánh giá độ phức tạp của thuật toán. Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 3 Giải bài toán bằng máy tính  Giải quyết một bài toán:  Mục tiêu  Phương pháp  Giải quyết bài toán tin học cần phải:  Tổ chức biểu diễn các đối tượng thực tế  Xây dựng trình tự các thao tác xử lý trên các đối tượng dữ liệu đó Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 4 Giải bài toán bằng máy tính Cấu trúc dữ liệu + Thuật toán Chương trình Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 5 Kiểu dữ liệu trừu tượng _ADT  Kiểu dữ liệu  Kiểu dữ liệu trừu tượng  ADT - abstract data type  Kiểu dữ liệu trừu tượng: T =  V: Values - miền giá trị  O: Operators – các thao tác Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 6 Cấu trúc dữ liệu  Cấu trúc dữ liệu (Data structure): Cách tổ chức dữ liệu cho bài toán  Có một số cấu trúc dữ liệu riêng của ngôn ngữ lập trình được gọi là CTDL tiền định. Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 7 Đánh giá cấu trúc dữ liệu  Phản ánh đúng thực tế  Phù hợp với thao tác  Tiết kiệm tài nguyên hệ thống Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 8 Cấu trúc lưu trữ (trong/ngoài)  Cách biểu diễn tối ưu của cấu trúc dữ liệu trên bộ nhớ (trong/ngoài) của máy tính được gọi là cấu trúc lưu trữ.  Có nhiều cấu trúc lưu trữ khác nhau cho cùng một cấu trúc dữ liệu Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 9 Thuật toán  Định nghĩa  Lý thuyết thuật toán quan tâm đến những vấn đề sau:  Giải được bằng thuật toán  Tối ưu hóa thuật toán  Triển khai thuật toán Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 10 Thuật toán  Đặc trưng của thuật toán  Tính xác định  Tính hữu hạn (Tính dừng)  Tính đúng đắn  Tính phổ dụng  Tính khả thi Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 11 Diễn đạt thuật toán  Dạng lưu đồ (sơ đồ khối)  Dạng ngôn ngữ tự nhiên (Ngôn ngữ liệt kê từng bước)  Ngôn ngữ lập trình  Dạng mã giả Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 12 Diễn đạt thuật toán Các ký hiệu biểu diễn thuật toán bằng sơ đồ khối Nút thao tác Nút điều khiển: trong đó ghi điều kiện cần kiểm tra trong quá trình tính toán. Nút khởi đầu ,kết thúc Cung Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 13 Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 14 Diễn đạt thuật toán Ví dụ 1: Thuật toán xác định n là số nguyên tố  Bước 1: Nhập n  Bước 2: Nếu n ≤ 1  n ko nguyên tố  dừng  Bước 3: Nếu n ≥ 2, gán i  2  Bước 4: Nếu i ≥ √n hay n chia hết cho i  bước 6  Bước 5: Gán i  i+1, trở lại bước 4  Bước 6:  Nếu i > √n  n nguyên tố  dừng  Ngược lại, n không là nguyên tố  dừng Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 15 Diễn đạt thuật toán Ví dụ 2: Thuật toán tìm phần tử thứ n của dãy số Fibonacci  Bước 1: Nhập n  Bước 2: Nếu n=1 hay n=2  fn=1  dừng  Bước 3: Nếu n > 2, gán a1, b1, i1  Bước 4: Gán ca+b, ab, bc  Bước 5:  Nếu i = n - 2  fn=c  dừng  Ngược lại i  i+1, quay lại bước 4 Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 16 Diễn đạt thuật toán Ví dụ 3: Tìm phần tử lớn nhất trong mảng A  Thuật toán Tim_max(A, n) Input: Mảng A, gồm n số nguyên Output: Giá trị lớn nhất của A Max  A[0] for i  1 to n  1 do if A[i]  Max then Max  A[i] return Max Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 17 Mối quan hệ giữa Cấu trúc dữ liệu và thuật toán  Đối tượng xử lý của thuật toán chính là dữ liệu  Với một cấu trúc dữ liệu, sẽ có những thuật toán tương ứng.  Thuật toán thường thay đổi khi cấu trúc dữ liệu thay đổi. Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 18 Thiết kế thuật toán  Từ bài toán đến chương trình Thiết kế Lập trình #include Bài toán thực tế Giải thuật Chương trình Kỹ thuật thiết kế giải •Ngôn ngữ lập thuật: Chia để trị, quy trình: hoạch động, back •PASCAL, C/C++, tracking v.v JAVA, Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 19 Thiết kế thuật toán  Module hoá và việc giải quyết bài toán  Chiến thuật chia để trị (divide-conquer):  Để thực hiện chiến thuật này, thường có hai cách thiết kế:  Từ trên xuống (Top-Down Design).  Tinh chỉnh từng bước Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 20 Thiết kế thuật toán  Tinh chỉnh từng bước:  Biểu diễn ý tưởng bằng ngôn ngữ tự nhiên  Chi tiết hóa các công việc nhỏ hơn dùng mã giả rồi đến ngôn ngữ lập trình Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 21 Thiết kế thuật toán  Ví dụ: Bài toán sắp xếp một dãy n số, theo thứ tự tăng dần  Chọn số bé nhất trong n số để vào vị trí thứ 1  Chọn số bé nhất trong n-1 số còn lại để vào vị trí thứ 2   Chọn số bé nhất trong 2 số còn lại để vào vị trí thứ n-1 Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 22 Thiết kế thuật toán Tinh chế 1: For (i= 1, i <= n-1, i++) { - Chọn số bé nhất trong các số xi, xi+1, , xn - Đổi chỗ cho xi } Tinh chế 2: For (i= 1, i <= n-1, i++) { - min = x[i] - So sánh min với các số từ xi+1 -> xn . Nếu x[j] > min thì min = x[j] với j [i+1,n] - đổi chổ x[i] và min } Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 23 Thiết kế thuật toán for (i= 1; i <= n-1; i++) { min =x[i]; vt =i; for(j = i+1; j <=n; j++) if (x[j] < min) { min = x[j] ; vt =j; } if (vt!=i) { x[vt] = x[i]; x[i] = min } } Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 24 Phân tích thuật toán  Khi xây dựng thuật toán cần đặt ra các yêu cầu:  Tính đúng đắn  Tính đơn giản  Không gian  Thời gian Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 25 Phân tích thuật toán  Giải quyết bài toán  Phải đứng trước việc lựa chọn giải thuật nào?  Dựa trên cơ sở nào để lựa chọn ?  Có hai mục tiêu trái ngược  Thuật toán dễ hiểu, cài đặt và gỡ lỗi.  Thuật toán sử dụng hiệu quả tài nguyên máy tính, đặc biệt chạy càng nhanh càng tốt. Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 26 Đánh giá độ phức tạp thuật toán  Độ phức tạp không gian (Space complexity) Dung lượng bộ nhớ mà thuật toán đòi hỏi  Độ phức tạp thời gian (Time complexity) Thời gian thực hiện thuật toán Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 27 Phân tích thời gian thực hiện thuật toán  Thời gian thực hiện giải thuật phụ thuộc vào các yếu tố sau:  Dữ liệu vào  Tốc độ thực hiện các phép toán của máy tính (phần cứng máy tính)  Trình biên dịch Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 28 Phân tích thời gian thực hiện thuật toán  Định nghĩa: Phép toán cơ bản là phép toán có thể thực hiện với thời gian bị chặn bởi một hằng số không phụ thuộc vào kích thước dữ liệu  Để tính toán thời gian thực hiện thuật toán ta đếm số phép toán cơ bản mà thuật toán thực hiện. Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 29 Các loại thời gian tính  Ký hiệu: T(n)  Thời gian tính tốt nhất  Thời gian tính trung bình  Thời gian tính xấu nhất Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 30 Ký hiệu tiệm cận  , O,   Được sử dụng để mô tả thời gian tính của thuật toán.  Được xác định đối với các hàm nhận giá trị nguyên không âm.  Dùng để so sánh tốc độ tăng của hai hàm Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 31 Ký hiệu O  Ký hiệu O (big-Oh): hàm f(n) và g(n), ta nói: f(n) = Ο(g(n)), nếu tồn tại các hằng số dương c và no sao cho f(n) ≤ cg(n) khi n ≥ no.  Ký hiệu này dùng để chỉ chặn trên của một hàm  Ý nghĩa: Tốc độ tăng của hàm f(n) không lớn hơn hàm g(n). Hay có thể nói g(n) là cận trên tiệm cận của f(n) Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 32 Ký hiệu O f(n) = 2n + 6  Ví dụ : f(n) = 2n+6, c g(n) = 4n g(n) = n và c = 4, n0=3  f(n)= O(n) g(n) = n N = 3 0 n Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 33 Ký hiệu Ω  Định nghĩa Ω: f(n) = Ω(g(n)), nếu tồn tại các hằng số dương c và no sao cho f(n) ≥ cg(n) khi n ≥ no f(n) = Ω(g(n))  g(n) = Ο(f(n))  Ta nói g(n) là cận dưới tiệm cận cho f(n) Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 34 Ký hiệu   Định nghĩa  f(n) = (g(n)), nếu tồn tại các hằng số dương c1, c2 và n0 sao cho c1.g(n)  f(n)  c2. g(n) với mọi n> n0  Ta nói g(n) là đánh giá tiệm cận đúng cho f(n) Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 35 Biểu diễn đồ thị đánh giá thời gian tính của thuật toán f (n)O(g(n)) f (n)(g(n)) cg(n) f(n) f(n) cg(n) n0 n0 Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 36 Biểu diễn đồ thị đánh giá thời gian tính của thuật toán f (n)(g(n)) c2g(n) f(n) c1g(n) n0 Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 37 Liên hệ giữa , O,  Hai hàm bất kỳ f(n) và g(n), f(n) = (g(n)) khi và chỉ khi f(n) = O(g(n)) và f(n) = (g(n)) Nghĩa là: (g(n)) = O(g(n))  (g(n)) Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 38 Thời gian tính của thuật toán  O(f(n)): là thời gian tính xấu nhất.  (f(n)) : là thời gian tính tốt nhất.  (f(n)) : là thời gian tính trung bình. Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 39 Một số qui tắc về ký hiệu O lớn  f = O(f)  f = O(g) và g = O(h) thì f = O(h)  f = O(g) và h=O(r) thì fh = O(gr)  f =O(g) và h=O(r) thì f+h = O(g+r)  f =O(g) thì af = O(g) với mọi a>0.  f là đa thức bậc k thì f(n) là O(nk) Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 40 Một số qui tắc về ký hiệu O lớn  O(c) = O(1), c là hằng số  O(lg2 n) = O(ln n) = O(log n)  Ví dụ:  2n là O(n)  3n + 5 là O(n) thay vì 3n + 5 là O(3n)  4n2 + 5n + 7 là O(?) Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 41 Xác định độ phức tạp tính toán  T1(n) và T2(n) là thời gian thực hiện của hai giai đoạn chương trình P1 và P2 mà T1(n) = O(f(n)); T2(n) = O(g(n))  Qui tắc tổng:  Thời gian thực hiện đoạn P1 rồi P2 tiếp theo sẽ là T1(n) + T2(n) = O(max(f(n),g(n))).  Qui tắc nhân:  Thời gian thực hiện P1 và P2 lồng nhau sẽ là: T1(n)T2(n) = O(f(n)*g(n)) Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 42 Các qui tắc tổng quát  Các phép gán, đọc, viết, goto là các phép toán sơ cấp: Thời gian thực hiện là: O(1) Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 43 Các qui tắc tổng quát Lệnh lựa chọn: if-else có dạng if () T0(n) = O(1) lệnh 1 T1(n) = O(f(n)) else lệnh 2 T2(n) = O(g(n)) Thời gian tính của lệnh if-else là O(max(f(n),g(n))) Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 44 Các qui tắc tổng quát  Câu lệnh switch được đánh giá tương tự như lệnh if-else.  Các lệnh lặp: for, while, do-while  Cần đánh giá số tối đa các lần lặp, giả sử đó là L(n)  Tiếp theo đánh giá thời gian chạy của mỗi lần lặp là Ti(n), (i=1,2,..., L(n))  Mỗi lần lặp, chi phí kiểm tra điều kiện lặp,là T0(n). L(n)  Chí phí lệnh lặp là: T0 n+ Ti n i1 Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 45 Một số ví dụ  Ví dụ: Tìm giá trị x có trong mảng A chứa n số thực không? i = 0; while (i < n && x != A[i]) i++; Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 46 Một số ví dụ Ví dụ 1: for (i=0; i<n; i++) for (j=0; j<n; j++) O(n2) k++; Ví dụ 2: for (i=0; i<n; i++) k++; for (i=0; i<n; i++) O(n2) for (j=0; j<n; j++) k++; Ví dụ 3: for (int i=0; i<n-1; i++) for (int j=0; j<i; j++) O(n2) int k+=1; Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 47 Một số ví dụ int MaxSubSum1(const int a[], int n) { int maxSum=0; for (int i=0; i<n; i++) for (int j=i; j<n; j++) { int thisSum=0; for (int k=i; k<=j; k++) 3 thisSum+=a[k]; O(n ) if (thisSum>maxSum) maxSum=thisSum; } return maxSum; } Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 48 Một số ví dụ int MaxSubSum2(const int a[], int n) { int maxSum=0; for (int i=0; i<n; i++) { thisSum=0; for (int j=i; j<n; j++) { 2 thisSum+=a[j]; O(n ) if (thisSum>maxSum) maxSum=thisSum; } } return maxSum; } Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 49 Một số ví dụ int MaxSubSum4(const int a[], int n) { int maxSum=0, thisSum=0; for (int j=0; j<n; j++) { thisSum+=a[j]; if (thisSum>maxSum) O(n) maxSum=thisSum; else if (thisSum<0) thisSum=0; } return maxSum; } Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 50 Một số ví dụ Sum=0 for (i=0;i<N;i++) for (j=0;j<N*N;++) O(N3) Sum++; Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 51 Một số ví dụ Ví dụ: sắp xếp dãy void BubbleSort(int a[], int n) { int i,j,temp; for(i= 0; i<n-1; i++) (1) for(j=n-1; j>i; j--) (2) if (a[j] < a[j-1]) (3) { temp=a[j-1]; (4) a[j-1] = a[j]; (5) a[j] = temp; (6) } } Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 52 Một số ví dụ  Lệnh (3), (4), (5) và (6) đều tốn O(1)  Vòng lặp (2) thực hiện (n-i) lần, mỗi lần O(1) do đó vòng lặp (2) tốn O((n-i)*1) = O(n-i).  Vòng lặp (1), i chạy từ 1 đến n-1, thời gian thực hiện của vòng lặp (1) là n-1  Độ phức tạp của giải thuật là n1 n(n 1) T(n)  (n i)   O(n2 ) i1 2 Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 53 Phân tích các hàm đệ quy  Công thức đệ quy cho nhiều thuật toán dựa trên chia để trị có dạng:  T(n) = O(1) nếu n≤ c  T(n) = aT(n/b) + D(n) + C(n) nếu n>c Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 54 Phân tích các hàm đệ quy  Ví dụ: Hàm tính giai thừa int Fact(int n) { if (n <= 1) return 1; else return n * Fact(n-1); }  Với n <= 1, ta có T(1) = O(1).  Với n > 1, ta có T(n) = 0(1) + T(n-1) Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 55 Phân tích các hàm đệ quy  Ta có quan hệ đệ quy sau:  T(1) = O(1)  T(n) = T(n-1) + O(1) với n > 1  Thay các ký hiệu O(1) bởi các hằng số dương a và b tương ứng, ta có  T(1) = a  T(n) = T(n-1) + b với n > 1 Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 56 Phân tích các hàm đệ quy  Sử dụng các phép thế T(n-1) = T(n-2) + b, T(n-2) = T(n-3) + b,..., ta có T(n) = T(n-1) + b = T(n-2) + 2b = T(n-3) + 3b ... = T(1) + (n-1)b = a + (n-1)b Từ đó, ta suy ra T(n) = O(n). Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 57 Phân tích các hàm đệ quy  Gọi T(n) là thời gian chạy của hàm đệ quy F  Khi đó, thời gian chạy của các lời gọi hàm ở trong hàm F sẽ là T(m) (với m < n)  Trước hết, phải đánh giá thời gian chạy của hàm F trên dữ liệu nhỏ nhất n = 1, giả sử T(1) = a (điều kiện dừng)  Sau đó, đánh giá thời gian chạy của các câu lệnh trong thân của hàm F  Tìm ra quan hệ đệ quy biểu diễn thời gian chạy của hàm F thông qua lời gọi hàm Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 58 Sự phân lớp của giải thuật  Độ phức tạp  O(1) độ phức tạp hằng 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 mũ  O(n!) độ phức tạp giai thừa Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 59 Sự phân lớp của giải thuật Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 60 Đánh giá độ phức tạp trong ba trường hợp  Ví dụ: Thuật toán tìm kiếm tuần tự int sequenceSearch(int x, int a[], int n) { for (int i=0;i<n;i++) { if (x==a[i]) return i; } return -1; } Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 61 Đánh giá độ phức tạp trong ba trường hợp  Tốt nhất: phần tử đầu tiên là phần tử cần tìm, số lượng phép so sánh là 2  T(n) ~ O(2) = O(1)  Xấu nhất: so sánh đến phần tử cuối cùng, số lượng phép so sánh là 2n  T(n) ~ O(n)  Trung bình: so sánh đến phần tử thứ i, cần 2i phép so sánh, vậy trung bình cần (2+4+6++2n)/n=2(1+2++n)/n=n+1  T(n) ~ O(n) Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 62 Kiến thức Toán học bổ trợ về Tổng các chuỗi N S(N) 1+ 2 ++ N  i  N(1+ N) / 2 i1 N N(N +1)(2N +1) N 3  Tổng các BP: i2   for large N  6 3 i1  Logarithms: a  x = b  logx b = a Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 63 Kiến thức Toán học bổ trợ về Tổng các chuỗi N N k+1 ik  for large N and k  -1 i1 | k +1| N AN +1 1  Ai  i0 A1  Đặc biệt khi A = 2  20 + 21 + 22 + + 2N = 2N+1 - 1 Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 64 Q&A Khoa Công Nghệ Thông Tin - Trường Đại học Ngân hàng TP.HCM 65

Các file đính kèm theo tài liệu này:

  • pdfbai_giang_cau_truc_du_lieu_va_giai_thuat_chuong_1_tong_quan.pdf