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

Bài giảng cơ sở toán học

47 138 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 47
Dung lượng 8,79 MB

Nội dung

Độ tăng của hàm Cho hai hàm số f và g, f: RR, g: RR. Trong phần này bàn đến sự so sánh độ tăng của hai hàm f(x) và g(x) khi x  +. 1. Định nghĩa Định nghĩa 1.1. Ta nói rằng f(x) = o(g(x)) khi x dần tới dương vô cùng, nếu như limx+f(x)g(x) = 0. Khi này người ta nói rằng f(x) tăng chậm hơn so với g(x) khi x lớn dần đến +. Ví dụ 1.1. x2 = o(x5) sin(x) = o(x) 1x = o(1)

Bài sở toán học Độ tăng hàm Cho hai hàm số f g, f: RR, g: RR Trong phần bàn đến so sánh độ tăng hai hàm f(x) g(x) x  + Định nghĩa Định nghĩa 1.1 Ta nói f(x) = o(g(x)) x dần tới dương vô cùng, limx+f(x)/g(x) = Khi người ta nói f(x) tăng chậm so với g(x) x lớn dần đến + Ví dụ 1.1 x2 = o(x5) sin(x) = o(x) 1/x = o(1)  sở toán học/2 of 59 Độ tăng hàm Định nghĩa 1.2 Ta nói f(x) O-lớn g(x) x dần tới dương vơ Kí hiệu f(x) = O(g(x)) viết f(x) O(g(x)) tồn hai số C >0 N >0 cho với x > N |f(x) |  C.|g(x)| Ví dụ 1.2 Xét hàm số f(x) = x2+2x+3 Rõ ràng f(x) = O(x2), với x>1 ta f(x)  x2 + 2x2 + 3x2 = 6x2 Ngược lại ta x2 = O(f(x)) hiển nhiên với x>0 ta x2 0, với x  k ta kx2  1.x3 Để ý cặp giá trị C N, tồn tại, rõ ràng Ví dụ 1.4 1/(1+x2) = O(1) sin(x) = O(1) sở toán học/4 of 59 Độ tăng hàm Định nghĩa 1.3 Ta nói f(x) tương đương với g(x) x dần tới dương vơ cùng, kí hiệu f(x)  g(x), limx+f(x)/g(x) = Ví dụ 1.5 1+x+x2  x2, (2x+4)2  4x2 sở toán học/5 of 59 Độ tăng hàm Mệnh đề 1.1 Cho f(x) = a0 + a1x1 + a2x2 + + an-1xn-1 + anxn, ai, i=0,1, n, số thực Khi f(x) = O(xn) Chứng minh: Kí hiệu C =| a0 |+ |a1 |+ |a2 |+ + |an-1 |+ |an| Với x>1 ta xk < xn, với k< n, suy |f(x)| = |a0 + a1x1 + a2x2 + + an-1xn-1 + anxn| |a0| + |a1x1| + |a2x2| + + |an-1xn-1| + |anxn| =|a0| + |a1| x + |a2| x2 + + |an-1| xn-1 + |an| xn (|a0| + |a1|+ |a2|.+ + |an-1|+ |an|) Xn = C xn (đpcm) sở toán học/6 of 59 Độ tăng hàm Ví dụ 1.6 Đánh giá tổng n số tự nhiên S(n) = + 2+ + n < n+n+ + n = n2 Vậy S(n) = O(n2) Nhận xét: Số mũ O(n2) phải nhỏ hay chưa? Cũng vậy, biểu thức n2 phải nhỏ hay chưa? Việc đánh giá hàm O-lớn bậc hàm sát tốt Ta nhận xét tồn số N, C1 C2 cho x>N ta C1.g(x)  f(x)  C2.g(x) rõ ràng đánh giá O(g(x)) f(x) coi xác Trong trường hợp người ta nói f(x) g(x) bậc sở toán học/7 of 59 Độ tăng hàm Chẳng hạn, f(x) = x2 với g(x) = x2+2x+3 bậc, f(x) = a0 + a1x1 + a2x2 + + an-1xn-1 + anxn với xn bậc = O(x3), rõ ràng Trong ví dụ 1.3 kx x3 khơng phải O(kx2) Thật vậy, với C N tuỳ ý ta cần chọn x > max{1, C.k, N} x3 > C.kx2 ; nghĩa khơng tồn số C N Định nghĩa 1.1 Như vậy, kx2 x3 bậc Ví dụ 1.4: Đánh giá hàm giai thừa f(n) = n!  sở toán học/8 of 59 Độ tăng hàm Quy ước: 0! =1 1! =1; 3! = 1.2.3 = 6; 5! = 120; 10 ! = 362,880; 11! = 39,916,800; 20! = 2,432,902,008,176,640,000 Rõ ràng n! < nn Điều chứng tỏ n! = O(nn) Từ suy Log(n!) = O(n log n) sở toán học/9 of 59 Độ tăng hàm Định nghĩa 1.4 Ta nói f(x) = (g(x)) tồn C>0 dãy x1, x2, x3, +, cho với i: f(xi)> C.g(xi) Ví dụ, x = (log(x)) Định nghĩa 1.5 Ta nói hàm f tăng theo hàm mũ tồn c>1 d cho f(x) = (cx) f(x) = O(dx) Ví dụ, f(x) = e2x f(n) = n! sở tốn học/10 of 59 Độ phức tạp thuật tốn Ví dụ 2.6 Xét độ phức tạp thuật tốn tìm kiếm nhị phân Procedure TimKiem_NP(a:mảng số nguyên; x: số nguyên); First :=1; last :=n; Found :=false; While first1 Độ phức tạp O(n!) Độ phức tạp số logarit tuyến tính đa thức nlogn hàm mũ giai thừa sở toán học/35 of 59 Độ phức tạp thuật tốn    Ví dụ 2.7 Cho số nguyên n Hãy tìm số nguyên m lớn mà biểu diễn theo số 16 chữ số khác đơi tổng chữ số (ở số 16) n N = => m = 410(16) N = 10 => m =43210(16) sở toán học/36 of 59 Độ phức tạp thuật toán    Do số lớn thành lập từ chữ số khác hệ đếm 16 FEDCBA9876543210 (= 18 364 758 544 493 064 720) số n giá trị lớn 120 khơng cần kiểm tra Nếu sử dụng thuật tốn tìm kiếm ta phải duyệt 18 364 758 544 493 064 720 trường hợp Mỗi trường hợp phải đổi số tương ứng số 16, tính tổng chữ số so sánh với n Và cuối phải tìm số lớn thoả mãn hai điều kiện Nếu giả định giây kiểm tra 1,000,000 trường hợp phải 5,101,321,817 giờ, hay 212,555,075 ngày, hay 582,343 năm sở toán học/37 of 59 Độ phức tạp thuật toán    Nếu dùng thuật toán tốt ta cần thời gian Ta so sánh hai số số chữ số với Từ trái sang phải số chữ số lớn số lớn Như vậy, với chữ số việc đặt cho chữ số giảm dần từ trái sang phải cho ta số lớn số chữ số Từ dẫn tới thuật tốn sau: InPut: Số n mảng A trống OutPut: Mảng A chứa chữ số m sở toán học/38 of 59 Độ phức tạp thuật toán Procedure Tim_so_m(n:byte); For i:=0 to 15 a[i]:=0; i:=0; While n > a[i] a) Inc(i); b) a[i] := i; c) n := n-i; j:=15; While n>0 a) t := {n, j-a[i] }; b) a[i] := a[i] + t; c) n := n - t; d) Dec(j); Dec(i); sở toán học/39 of 59 Độ phức tạp thuật toán   Và theo thuật toán ta cần tốn khơng đầy giây kết Độ phức tạp thuật toán O(1); sở toán học/40 of 59 Độ phức tạp thuật tốn Ví dụ 2.8 So sánh thuật tốn tính giá trị đa thức x=c: f(x) = a0 + a1x1 + a2x2 + + an-1xn-1 + anxn = anxn + an-1xn-1 + + a2x2 + a1x1 + a0 = (( ((anx + an-1).X + an-2).X + + a2)x + a1)x + a0 sở toán học/41 of 59 Độ phức tạp thuật toán Thuật toán 1: P:=1; Ts:=a0; For i:=1 to n P := P * c ; Ts:= Ts + a(i)* P ; End For Ts giá trị đa thức c Số phép toán 3n Để ý với thuật tốn việc tính xk, với k = 1,2, ,n cách riêng rẽ tạo số lớn, gặp phải sai số lớn sở toán học/42 of 59 Độ phức tạp thuật toán Thuật toán (Hoorner): Ts := a(n) ; For i:=1 to n Ts := Ts*c + a(n-i) ; End For; Ts giá trị đa thức c Số phép toán 2n sở toán học/43 of 59 Độ phức tạp thuật tốn Ví dụ 2.9 Đánh giá số phép chia số nguyên thuật toán Euclid để tìm ước số chung lớn hai số nguyên a b, a>b x:= a; y:=b; While y>0 r := x mod y; x := y; y := r; End While Đáp số: O(log2b) sở toán học/44 of 59 Bài tập      Các phép tương quan ứng với kí hiệu O, o, ,  tính bắc cầu hay khơng (ví dụ, f(x) = O(g(x)), g(x) = O(h(x)) suy f(x) = O(h(x)))? Chứng tỏ f(n) = O(logan), với a>1, f(n) = O(logbn), với b>1 Chứng minh n logn = O(n2) Chứng minh  lg(n+1) = lg n +1 Tìm hàm f(x) cho f(x) = O(x1+), với  > 0, f(x) O(x) sở toán học/45 of 59 Bài tập        Chứng minh mệnh đề f(n) = O((2+)n) tương đương với mệnh đề f(n) = o((2+)n), với  > Chứng tỏ T(n) = no(1) tồn số k >0 cho T(n) = O(nk) Chứng minh lg(n!) = O(n lg n) n! = o(nn) Chứng minh rằng, f(n) g(n) hàm đơn điệu tăng, f(n) + g(n) f(g(n)) hàm đơn điệu tăng Xây dựng thuật toán tìm số bit số xâu bit s, số nguyên n So sánh thuật toán sở toán học/46 of 59 Bài tập       Mơ tả thuật tốn chèn số nguyên vào mảng xếp tăng dần Mơ tả thuật tốn tìm số cực đại dãy hữu hạn số thực Mô tả thuật tốn tìm từ dài xâu kí tự (ta hiểu từ xâu chữ liên tiếp) Mơ tả thuật tốn tìm kiếm tam phân mảng xếp tăng dần số nguyên Mơ tả thuật tốn tìm dãy liên tiếp không giảm từ dãy số nguyên cho trước (ở ta hiểu dãy liên tiếp dãy gồm phần tử liên tiếp dãy ban đầu) Xây dựng thuật toán nhân hai số nguyên, biết số tới 100 chữ số sở toán học/47 of 59 ... bậc với f(x)) Cơ sở toán học/ 15 of 59 Thuật toán & độ phức tạp thuật toán Khái niệm thuật toán Định nghĩa: Một thuật toán liệt kê dẫn, quy tắc cần thực theo bước xác định nhằm giải toán cho khoảng... := a(i); End If Cơ sở toán học/ 27 of 59 End For Độ phức tạp thuật tốn  Vì phép toán dùng phép toán so sánh sơ cấp ta nêu nên ta dùng số phép toán sơ cấp để đo độ phức tạp thuật toán Ta dễ dàng... đầu vào, thuật toán tạo giá trị đầu Các giá trị đầu nghiệm tốn Ví dụ, số max phần tử lớn a(1), ,a(n); số d ước chung lớn a b; Cơ sở toán học/ 19 of 59 Thuật toán & độ phức tạp thuật toán    

Ngày đăng: 23/05/2018, 15:03

TỪ KHÓA LIÊN QUAN

w