Giáo trình hình thành ứng dụng chế độ đánh giá giải thuật theo phương pháp tổng quan p4

10 7 0
Giáo trình hình thành ứng dụng chế độ đánh giá giải thuật theo phương pháp tổng quan p4

Đang tải... (xem toàn văn)

Thông tin tài liệu

Tham khảo tài liệu ''giáo trình hình thành ứng dụng chế độ đánh giá giải thuật theo phương pháp tổng quan p4'', công nghệ thông tin, kỹ thuật lập trình phục vụ nhu cầu học tập, nghiên cứu và làm việc hiệu quả

h a n g e Vi e w N y Tiếp tục trình sau bước kết thúc Bảng sau ghi lại giá trị khoá tương ứng với bước Khóa Bước Ban đầu Bước Bước Bước Bước Bước Bước Bước a[1] a[2] a[3] A[4] a[5] a[6] a[7] a[8] a[9] a[10] 2 2 5 10 3 6 12 10 9 9 9 12 10 9 9 10 12 10 10 10 10 10 10 2 9 10 10 12 10 10 10 10 10 10 10 10 10 12 12 12 12 12 12 12 Bước Bước Kết Hình 2-3: Sắp xếp bọt 2.3.3.2 Chương trình PROCEDURE BubbleSort; VAR i,j: integer; BEGIN {1} FOR i := to n-1 DO {2} FOR j := n DOWNTO i+1 DO {3} IF a[j].key < a[j-1].key THEN {4} Swap(a[j],a[j-1]); END; 2.3.3.3 Ðánh giá: Phương pháp xếp bọt lấy O(n2) để n phần tử Dòng lệnh {3} lấy thời gian Vòng lặp {2} thực (n-i) bước, bước lấy O(1) nên lấy O(n-i) thời gian Như toàn chương trình ta có: T(n)= n −1 ∑ (n − i) = i =1 Nguyễn Văn Linh n(n − 1) = O(n2) Trang 24 to bu Bước 2: Xét a[10] có khố 9, nhỏ khố a[9] nên ta hoán đổi a[10] a[9] cho Khoá a[9] khơng nhỏ khố a[8] nên bỏ qua Khoá a[8] nhỏ khoá a[7] nên ta hoán đổi a[8] a[7] cho Khoá a[7] nhỏ khoá a[6] nên ta hoán đổi a[7] a[6] cho Khoá a[6] khơng nhỏ khố a[5] nên bỏ qua Khố a[5] khơng nhỏ khoá a[4] nên bỏ qua Khoá a[4] nhỏ khoá a[3] nên ta hoán đổi a[4] a[3] cho Khoá a[3] nhỏ khoá a[2] nên ta hoán đổi a[3] a[2] cho Đến kết thúc bước a[2] có khố k d o m w o Sắp xếp c lic Giải thuật o c u -tr a c k w w d o m C lic k to w w w C bu y N O W ! XC er O W F- w PD h a n g e Vi e ! XC er PD F- c u -tr a c k c F- w y 2.4 QUICKSORT Trong phần nghiên cứu giải thuật xếp dùng cách phổ biến Quick Sort A.R Hoare phát minh vào năm 1960 Quick Sort cải tiến để trở thành phương pháp chọn ứng dụng xếp thực tế khác 2.4.1 Ý tưởng Chúng ta xét mảng a mẩu tin a[1] a[n] Giả sử v giá trị khóa mà ta gọi chốt (pivot) Ta phân hoạch dãy a[1] a[n] thành hai mảng "bên trái" "bên phải" Mảng "bên trái" bao gồm phần tử có khóa nhỏ chốt, mảng "bên phải" bao gồm phần tử có khóa lớn chốt Sắp xếp mảng “bên trái” mảng “bên phải” mảng cho tất khóa mảng “bên trái“ nhỏ khóa mảng “bên phải” Việc xếp mảng “bên trái” “bên phải” tiến hành phương pháp nói Một mảng gồm phần tử gồm nhiều phần tử có khóa có thứ tự 2.4.2 Thiết kế giải thuật 2.4.2.1 Vấn đề chọn chốt Chọn khóa lớn hai phần tử có khóa khác kể từ trái qua Nếu mảng gồm phần tử hay gồm nhiều phần tử có khóa khơng có chốt Ví dụ 2-5: Chọn chốt mảng sau Cho mảng gồm phần tử có khố 6, 6, 5, 8, 7, 4, ta chọn chốt (khoá phần tử đầu tiên) Cho mảng gồm phần tử có khố 6, 6, 7, 5, 7, 4, ta chọn chốt (khoá phần tử thứ 3) Cho mảng gồm phần tử có khố 6, 6, 6, 6, 6, khơng có chốt (các phần tử có khố nhau) Cho mảng gồm phần tử có khố khơng có chốt (do có phần tử) 2.4.2.2 Vấn đề phần hoạch Ðể phân hoạch mảng ta dùng "con nháy" L R L từ bên trái R từ bên phải, ta cho L chạy sang phải gặp phần tử có khóa ≥ chốt cho R chạy sang trái gặp phần tử có khóa < chốt Tại chỗ dừng L R L < R hốn vị a[L],a[R] Lặp lại q trình dịch sang phải, sang trái "con nháy" L R L > R Khi L điểm phân hoạch, cụ thể a[L] phần tử mảng “bên phải” Nguyễn Văn Linh Trang 25 to k lic d o m w o c C m Sắp xếp o Giải thuật bu y bu to k lic C c u -tr ack w w d o w w w w N O W ! h a n g e Vi e N O W XC er PD h a n g e Vi e ! XC er PD F- c u -tr a c k c F- w y 2.4.2.3 Giải thuật QuickSort Ðể xếp mảng a[i] a[j] ta tiến hành bước sau: • Xác định chốt • Phân hoạch mảng cho thành hai mảng a[i] a[k-1] a[k] a[j] • Sắp xếp mảng a[i] a[k-1] (Ðệ quy) • Sắp xếp mảng a[k] a[j] (Ðệ quy) Q trình đệ quy dừng khơng cịn tìm thấy chốt Ví dụ 2-4: Sắp xếp mảng gồm 10 mẩu tin có khóa số nguyên: 5, 8, 2, 10, 5, 12, 8, 1, 15 Với mảng a[1] a[10], hai phần tử có khóa khác là a[1] a[2] với khoá tương ứng 8, ta chọn chốt v = Để phân hoạch, khởi đầu ta cho L := (đặt L cực trái) R := 10 (đặt R cực phải) Do a[L] có khoá nhỏ chốt nên L := L+1 = (di chuyển L sang phải), lúc a[L] có khố = chốt nên dừng lại Do a[R] có khố nhỏ chốt nên R không chuyển sang trái Tại điểm dừng L R ta có L < R (L=2 R=10) nên hoán đổi a[L] a[R] (a[2] a[10]) cho Sau hốn đổi, a[L] lại có khoá nhỏ chốt nên di chuyển L sang phải (L := L+1 = 3) Khoá a[L] nhỏ chốt nên lại di chuyển L sang phải (L := L+1 = 4) Khoá a[L] 10 lớn chốt nên dừng lại Với R, khoá a[R] chốt nên di chuyển R sang trái (R := R-1 = 9) Khoá a[R] 15 lớn chốt nên di chuyển R sang trái (R := R-1 = 8) Khoá a[R] nhỏ chốt nên dừng lại Tại điểm dừng L R ta có L < R (L=4 R=8) nên hoán đổi a[L] a[R] (a[4] a[8]) cho Sau hoán đổi, a[L] có khố nhỏ chốt nên di chuyển L sang phải (L := L+1 = 5) Khoá a[L] nhỏ chốt nên lại di chuyển L sang phải (L := L+1 = 6) Khoá a[L] 12 lớn chốt nên dừng lại Với R, khoá a[R] 10 lớn chốt nên di chuyển R sang trái (R := R1 = 7) Khoá a[R] chốt nên di chuyển R sang trái (R := R-1 = 6) Khoá a[R] 12 lớn chốt nên di chuyển R sang trái (R := R-1 = 5) Khoá a[R] nhỏ chốt nên dừng lại Tại điểm dừng L R ta có L > R (L=6 R=5) nên ta xác định điểm phân hoạch ứng với L = Tức mảng cho ban đầu phân thành hai mảng bên trái a[1] a[5] mảng bên phải a[6] a[10] Hình ảnh phân hoạch biểu diễn hình sau: Chỉ số Khoá Ban đầu 10 5 12 8 15 10 15 10 v=8 Cấp 5 12 10 Hình 2-4 : Chọn chốt phân hoạch mảng a[1] a[10] Trong bảng trên, dòng số ghi số phần tử mảng (từ đến 10) Nguyễn Văn Linh Trang 26 k lic d o o w m C Sắp xếp o m Giải thuật c to bu y bu to k lic C c u -tr ack w w d o w w w w N O W ! h a n g e Vi e N O W XC er PD h a n g e Vi e ! XC er PD F- c u -tr a c k c F- w y Trong dịng khố ban đầu, giá trị khố dịng (5, 8, 2, 10, 5, 12, 8, 1, 15 4) giá trị khoá mảng cho ban đầu, giá trị khố dịng (4, 1, 10 8) giá trị khoá sau thực hoán đổi a[2] với a[10] a[4] với a[8] Giá trị chốt v = Dòng cấp cấp 1, biểu diễn hai mảng sau phân hoạch Mảng bên trái từ a[1] đến a[5] gồm phần tử có khố 5, 4, 2, Mảng bên phải từ a[6] đến a[10] gồm phần tử có khố 12, 8, 10, 15 Tiếp tục xếp đệ quy cho mảng bên trái mảng bên phải Với mảng bên trái a[1] a[5], hai phần tử có khóa khác là a[1] a[2] với khoá tương ứng 4, ta chọn chốt v = Để phân hoạch, khởi đầu ta cho L := (đặt L cực trái) R := (đặt R cực phải) Do a[L] có khố chốt nên di chuyển L Do a[R] có khố chốt nên di chuyển R sang trái (R := R-1 = 4) Khoá a[R] nhỏ chốt nên dừng lại Tại điểm dừng L R ta có L < R (L= R=4) nên hoán đổi a[L] a[R] (a[1] a[4]) cho Sau hoán đổi, a[L] lại có khố nhỏ chốt nên di chuyển L sang phải (L := L+1 = 2) Khoá a[L] nhỏ chốt nên lại di chuyển L sang phải (L := L+1 = 3) Khoá a[L] nhỏ chốt nên lại di chuyển L sang phải (L := L+1 = 4) Khoá a[L] chốt nên dừng lại Với R, khoá a[R] chốt nên di chuyển R sang trái (R := R-1 = 4) Khoá a[R] chốt nên di chuyển R sang trái (R := R-1 = 3) Khoá a[R] nhỏ chốt nên dừng lại Tại điểm dừng L R ta có L > R (L=4 R=3) nên ta xác định điểm phân hoạch ứng với L = Tức mảng bên trái phân thành hai mảng bên trái a[1] a[3] mảng bên phải a[4] a[6] Hình ảnh phân hoạch biểu diễn hình sau: Chỉ số Khố Ban đầu 10 5 12 8 15 10 15 10 v=8 Cấp Cấp 5 1 12 10 v=5 5 Hình 2-5 : Chọn chốt phân hoạch mảng a[1] a[5] Tiếp tục xếp cho mảng cấp mảng bên phải mảng ban đầu dừng (các mảng khơng có chốt) Cuối ta có mảng thứ tự Hình sau biểu diễn tồn q trình xếp .Nguyễn Văn Linh Trang 27 k lic d o o w m C Sắp xếp o m Giải thuật c to bu y bu to k lic C c u -tr ack w w d o w w w w N O W ! h a n g e Vi e N O W XC er PD h a n g e Vi e ! XC er PD F- c u -tr a c k c F- w y Chỉ số Khoá Ban đầu Cấp Cấp Cấp Cấp Kết 10 5 12 8 1 v=5 2 v=4 v=2 xong xong xong 5 xong 10 10 v=8 12 15 8 10 15 12 v = 12 10 15 v = 10 8 10 xong xong 8 10 12 12 15 v =15 12 15 xong xong 12 15 Hình 2-6 : QuickSort 2.4.3 Cài đặt giải thuật 2.4.3.1 Hàm FindPivot Ta thiết kế hàm FindPivot để xác định dãy a[i] a[j] có hay khơng hai phần tử có khóa khác Nếu khơng tìm thấy hai phần tử có khóa khác trả giá trị (khơng tìm thấy chốt), ngược lại hàm trả giá trị số phần tử có khóa lớn hai phần tử có khóa khác Khóa lớn trở thành phần tử chốt mà ta xác định thủ tục QuickSort Ðể tiện so sánh ta sử dụng biến FirstKey để lưu giữ khóa phần tử mảng a[i] a[j] (FirstKey a[i].key) Ta dùng số k để dò tìm mảng a[i] a[j], kể từ vị trí i+1 đến hết mảng, phần tử a[k] mà a[k].key FirstKey Nếu khơng tìm thấy a[k] mảng gồm phần tử gồm nhiều phần tử có khóa Trong trường hợp khơng tìm thấy chốt hàm FindPivot trả Ngược lại ta phải xét xem a[k].key có lớn FirstKey hay khơng, chốt khóa a[k] hàm FindPivot trả k, khơng chốt khoá a[i] hàm FindPivot trả i FUNCTION FindPivot(i,j:integer): integer; VAR FirstKey : KeyType; k : integer; BEGIN {1} k := i+1; {2} FirstKey := a[i].key; {3} WHILE (k j THEN FindPivot := ELSE Nguyễn Văn Linh Trang 28 k lic d o o w m C m o Sắp xếp c to bu y bu to k Giải thuật lic C c u -tr ack w w d o w w w w N O W ! h a n g e Vi e N O W XC er PD h a n g e Vi e ! XC er PD F- c u -tr a c k c F- w y {5} IF a[k].key > FirstKey THEN FindPivot := k ELSE FindPivot := i; END; Trong hàm FindPivot lệnh {1}, {2}, {3} {4} nối tiếp nhau, có lệnh WHILE tốn nhiều thời gian thời gian thực hàm FindPivot phụ thuộc vào thời gian thực lệnh Trong trường hợp xấu (khơng tìm thấy chốt) k chạy từ i+1 đến j, tức vịng lặp thực j-i lần, lần O(1) tốn j-i thời gian Đặc biệt i=1 j=n, thời gian thực n-1 hay T(n) = O(n) 2.4.3.2 Hàm Partition Hàm Partition nhận vào ba tham số i, j Pivot để thực việc phân hoạch mảng a[i] a[j] theo chốt Pivot trả giá trị L số mảng “bên phải” Hai nháy L, R sử dụng để thực việc phân hoạch trình bày phần 2.4.2.3 FUNCTION Partition(i,j:integer; pivot :KeyType):integer ; VAR L,R : integer; BEGIN {1} L := i; {Ðặt nháy L cực trái} {2} R := j; {Ðặt nháy R cực phải} {3} WHILE L = pivot DO R := R-1; {6} IF L < R THEN Swap(a[L],a[R]); END; {7} Partition := L; {Trả điểm phân hoạch} END; Trong hàm Partition lệnh {1}, {2}, {3} {7} nối tiếp nhau, thời gian thực lệnh {3} lớn nhất, thời gian thực lệnh {3} thời gian thực hàm Partition Các lệnh {4}, {5} {6} thân lệnh {3}, lệnh {6} lấy O(1) thời gian Lệnh {4} lệnh {5} thực việc di chuyển L sang phải R sang trái, thực chất duyệt phần tử mảng, phần tử lần, lần tốn O(1) thời gian Tổng cộng việc duyệt tốn j-i thời gian Vòng lặp {3} thực chất để xét xem duyệt xong, thời gian thực lệnh {3} thời gian thực hai lệnh {4} {5} j-i Đặc biệt i=1 j=n ta có T(n) = O(n) 2.4.3.3 Thủ tục QuickSort Bây trình bày thủ tục cuối có tên QuickSort ý để xếp mảng A record gồm n phần tử kiểu Recordtype ta cần gọi QuickSort(1,n) Ta sử dụng biến PivotIndex để lưu giữ kết trả hàm FindPivot, biến PivotIndex nhận giá trị khác tiến hành phân hoạch mảng Nguyễn Văn Linh Trang 29 k lic d o o w m C m Sắp xếp o Giải thuật c to bu y bu to k lic C c u -tr ack w w d o w w w w N O W ! h a n g e Vi e N O W XC er PD h a n g e Vi e ! XC er PD F- c u -tr a c k c F- w y Ngược lại, mảng khơng có chốt có thứ tự Biến Pivot sử dụng để lưu giữ giá trị chốt biến k để lưu giữ giá trị điểm phân hoạch hàm Partition trả Sau khia phân hoạch xong ta gọi đệ quy QuickSort cho mảng “bên trái” a[i] a[k-1] mảng “bên phải” a[k] a[j] PROCEDURE Quicksort(i,j:integer); VAR Pivot : KeyType; PivotIndex, k : integer; BEGIN PivotIndex := FindPivot(i,j); IF PivotIndex THEN BEGIN Pivot := a[PivotIndex].key; k := Partition(i,j,Pivot); QuickSort(i,k-1); QuickSort(k,j); END; END; 2.4.4 Thời gian thực QuickSort QuickSort lấy O(nlogn) thời gian để xếp n phần tử trường hợp tốt O(n2) trường hợp xấu Giả sử giá trị khóa mảng khác nên hàm FindPivot ln tìm chốt đệ quy dừng kích thước tốn Gọi T(n) thời gian thức việc QuickSort mảng có n phần tử Thời gian để tìm chốt phân hoạch mảng phân tích phần 2.4.3.1 2.4.3.2 O(n) = n Khi n = 1, thủ tục QuickSort làm nhiệm vụ gọi hàm Findpivot với kích thước 1, hàm tốn thời gian O(1) =1 Trong trường hợp xấu ta ln chọn phải phần tử có khóa lớn làm chốt, lúc việc phân hoạch bị lệch tức mảng bên phải gồm phần tử chốt, mảng bên trái gồm n-1 phần tử cịn lại Khi ta thành lập phương trình đệ quy sau: T(n) = nêu n = T(n - 1) + T(1) + n nêu n > Giải phương trình phương pháp truy hồi Ta có T(n) = T(n-1) + T(1) +n = T(n-1) + (n+1) = [T(n-2) + T(1) +(n-1)] + (n+1) = T(n-2) + n + (n+1) = [T(n-3) + T(1) +(n-2)] + n + (n+1) = T(n-3) +(n-1) + n + (n+1) n +1 T(n) = T(n-i) + (n-i+2) + (n-i+3) + + n + (n+1) = T(n-i) + ‡”j j= n -i + Nguyễn Văn Linh Trang 30 k lic d o o w m C m o Sắp xếp c to bu y bu k to Giải thuật lic C c u -tr ack w w d o w w w w N O W ! h a n g e Vi e N O W XC er PD h a n g e Vi e ! XC er PD F- c u -tr a c k c F- w y Quá trình kết thúc i = n-1, ta có T(n) = T(1) + n +1 n +1 j= j= ‡”j = + ‡”j n + 3n - = ‡”j - = = O(n2) j=1 n +1 Trong trường hợp tốt ta chọn chốt cho hai mảng có kích thước n/2 Lúc ta có phương trình đệ quy sau: T(n) = nêu n = n 2T( ) + n nêu n > Giải phương trình đệ quy ta T(n) = O(nlogn) 2.5 HEAPSORT 2.5.1 Ðịnh nghĩa Heap Cây thứ tự phận hay gọi heap nhị phân mà giá trị nút (khác nút lá) không lớn giá trị của Ta có nhận xét nút gốc a[1] thứ tự phận có giá trị nhỏ Ví dụ 2-5: Cây sau heap 6 Hình 2-7: Một heap Nguyễn Văn Linh Trang 31 k lic d o o w m C Sắp xếp o m Giải thuật c to bu y bu to k lic C c u -tr ack w w d o w w w w N O W ! h a n g e Vi e N O W XC er PD h a n g e Vi e ! XC er PD F- c u -tr a c k c F- w y 2.5.2 Ý tưởng (1) Xem mảng ban đầu nhị phân Mỗi nút lưu trữ phần tử mảng, a[1] nút gốc nút không nút a[i] có trái a[2i] phải a[2i+1] Với cách tổ chức nhị phân thu có nút nút a[1], ,a[n DIV 2] Tất nút có con, ngoại trừ nút a[n DIV 2] có trái (trong trường hợp n số chẵn) (2) Sắp xếp ban đầu thành heap vào giá trị khoá nút (3) Hoán đổi a[1] cho cho phần tử cuối (4) Sắp lại sau bỏ phần tử cuối để trở thành heap Lặp lại trình (3) (4) nút ta mảng theo thứ tự giảm 2.5.3 Thiết kế cài đặt giải thuật 2.5.3.1 Thủ tục PushDown Thủ tục PushDown nhận vào tham số first last để đẩy nút first xuống Giả sử a[first], ,a[last] vị trí (giá trị khố nút nhỏ giá trị khoá nút nó) ngoại trừ a[first] PushDown dùng để đẩy phần tử a[first] xuống vị trí (và gây việc đẩy xuống phần tử khác) Xét a[first], có khả xẩy ra: • Nếu a[firrst] có trái khố lớn khố trái (a[first].key > a[2*first].key) hốn đổi a[first] cho trái kết thúc • Nếu a[first] có khố lớn trái (a[first].key > a[2*first].key) khố trái khơng lớn khố phải (a[2*first].key a[2*first+1].key ) khoá phải nhỏ khoá trái (a[2*first+1].key < a[2*first].key) hốn đổi a[first] cho phải a[2*first+1] nó, việc gây tình trạng phải khơng vị trí nên phải tiếp tục xem xét phải để đẩy xuống • Nếu tất trường hợp khơng xẩy a[first] vị trí Như ta thấy việc đẩy a[first] xuống gây việc đẩy xuống số phần tử khác, nên tổng quát ta xét việc đẩy xuống phần tử a[r] bất kỳ, a[first] Nguyễn Văn Linh Trang 32 k lic d o o w m C m o Sắp xếp c to bu y bu to k Giải thuật lic C c u -tr ack w w d o w w w w N O W ! h a n g e Vi e N O W XC er PD h a n g e Vi e ! XC er PD F- c u -tr a c k c h a n g e Vi e w N y PROCEDURE PushDown(first,last:integer); VAR r:integer; BEGIN r:= first; {Xét nút a[first] trước hết} WHILE r a[last].key THEN swap(a[r],a[last]); r:=last; {Kết thúc} END ELSE IF (a[r].key>a[2*r].key)and(a[2*r].keya[2*r+1].key)and(a[2*r+1].key Giải phương trình phương pháp truy hồi Ta có T(n) = T(n-1) + T(1) +n... QUICKSORT Trong phần nghiên cứu giải thuật xếp dùng cách phổ biến Quick Sort A.R Hoare phát minh vào năm 1960 Quick Sort cải tiến để trở thành phương pháp chọn ứng dụng xếp thực tế khác 2.4.1 Ý... ta có phương trình đệ quy sau: T(n) = nêu n = n 2T( ) + n nêu n > Giải phương trình đệ quy ta T(n) = O(nlogn) 2.5 HEAPSORT 2.5.1 Ðịnh nghĩa Heap Cây thứ tự phận hay gọi heap nhị phân mà giá trị

Ngày đăng: 11/05/2021, 02:42

Mục lục

  • GIẢI THUẬT

    • ĐẠI HỌC CẦN THƠ - 12/2003

    • PHẦN TỔNG QUAN

    • Chương 1: KĨ THUẬT PHÂN TÍCH GIẢI THUẬT

      • 1.1 TỔNG QUAN

        • 1.1.1 Mục tiêu

        • 1.1.2 Kiến thức cơ bản cần thiết

        • 1.1.3 Tài liệu tham khảo

        • 1.1.4 Nội dung cốt lõi

        • 1.2 SỰ CẦN THIẾT PHẢI PHÂN TÍCH GIẢI THUẬT

        • 1.3 THỜI GIAN THỰC HIỆN CỦA CHƯƠNG TRÌNH

          • 1.3.1 Thời gian thực hiện chương trình.

          • 1.3.2 Ðơn vị đo thời gian thực hiện.

          • 1.3.3 Thời gian thực hiện trong trường hợp xấu nhất.

          • 1.4 TỶ SUẤT TĂNG VÀ ÐỘ PHỨC TẠP CỦA GIẢI THUẬT

            • 1.4.1 Tỷ suất tăng

            • 1.4.2 Khái niệm độ phức tạp của giải thuật

            • 1.5 CÁCH TÍNH ÐỘ PHỨC TẠP

              • 1.5.1 Qui tắc cộng

              • 1.5.2 Qui tắc nhân

              • 1.5.3 Qui tắc tổng quát để phân tích một chương trình:

              • 1.5.4 Ðộ phức tạp của chương trình có gọi chương trình con không đệ qui

              • 1.6 PHÂN TÍCH CÁC CHƯƠNG TRÌNH ÐỆ QUY

                • 1.6.1 Thành lập phương trình đệ quy

                • 1.6.2 Giải phương trình đệ quy

                  • 1.6.2.1 Phương pháp truy hồi

                  • 1.6.2.2 Phương pháp đoán nghiệm

                  • 1.6.2.3 Lời giải tổng quát cho một lớp các phương trình đệ quy

                    • 1.6.2.3.1 Hàm tiến triển, nghiệm thuần nhất và nghiệm riêng

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

Tài liệu liên quan