1. Trang chủ
  2. » Công Nghệ Thông Tin

Một số bài tập có lời giải ký hiệu tiệm cận big o

10 4,7K 18

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

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 10
Dung lượng 415,95 KB

Nội dung

Môn học phân tích thiết kế thuật toán. Một số ví dụ bài về tìm độ phức tạp của thuật toán. Các cách chứng minh f(n) = O(g(n)) và ngược lại. Chứng minh: O(cf(n)) = O(f(n)) với C là hằng số, O(c) = O(1), tìm f(n) sao cho T(n) = O(f(n)), hO(f), và một số bài tập khác.Đây là bài tập thuộc khoa học máy tính, thuộc môn bắt buộc chuyên ngành.

Trang 1

Bài 1: Chứng minh:

O(cf(n)) = O(f(n)) với C là hằng số

O(c) = O(1)

Giải:

Chứng minh: O(cf(n)) = O(f(n)) với C là hằng số:

Xét t(n) ∈ O(cf(n))

 ∃c1 ∈ R+ , ∃n0 ∈ N, ∀n ≥ n0 t(n) ≤ c1cf(n)

 ∃c2 = c1c , ∃n0 ∈ N , ∀n ≥ n0

 ∃c2 ∈ R+, ∃n0 ∈ N , ∀n ≥ n0 t(n) ≤ c2f(n)

 t(n)∈ O(f(n))

Xét h(n) ∈ Of(n)

 ∃ a ∈ R+, ∃n0 ∈ N , ∀n ≥ n0 h(n) ≤ af(n)

Đặt b= a

c

 ∃b ∈ R+, ∃n0 ∈ N, ∀n ≥ n0 h(n) ≤ bcf(n)

 h(n) ∈ O(cf(n))

Ta có

{

t(n) ∈ O(cf(n)) t(n) ∈ O(f(n)) h(n) ∈ O(f(n)) h(n) ∈ Ocf(n)

=> O(cf(n))=O(f(n)) ( đpcm )

Chứng minh: O(c)=O(1)

Xét h(n)∈ O(c)

Trang 2

∃c1, n0 ∀n ≥ n0, h(n) ≤ c1c

 ∃c2 = c1c, n0 ∀n ≥ n0

 h(n) ≤ c21

 h(n)∈ O(1)

Xét k(n)∈ O(1)

∃c1, n0 ∀n ≥ n0 k(n)≤ c1× 1

 ∃c2 = c1, ∀n ≥ n0

 k(n) ≤ c2

 k(n) ∈ O(c)

Ta có: {

h(n) ∈ O(c) h(n) ∈ O(1) k(n) ∈ O(1) k(n) ∈ O(c)

=> O(c)=O(1) ( đpcm )

Câu 2 : Tìm f(n) sao cho T(n) = O(f(n))

Giải :

a) T(n) = 7n − 2

 T(n) = 7n − 2 ≤ 7n , ∀ n ≥ 1

⇒ T(n) ≤ 7n

Chọn C = 7, n0 = 1, f(n) = n

T(n) ≤ Cf(n) , ∀ n ≥ n0

⇒ T(n) = O(f(n))

b) T(n) = 3n3 + 2n2

 T(n) = 3n3 + 2n2 ≤ 3n3+ 2n3 , ∀ n ≥ 1

⇒ T(n) ≤ 5n3

Trang 3

Chọn C = 5 , n0 = 1 , f(n) = n3

T(n) ≤ Cf(n) , ∀ n ≥ n0

⇒ T(n) = O(f(n))

c) T(n) = (n + 1)2

 T(n) = (n2 + 1) ≤ (n2+ n2) , ∀ n ≥ 1

⇒ T(n) ≤ 4n2

Chọn C = 4 , n0 = 1, f(n) = n2

T(n) ≤ Cf(n) , ∀ n ≥ n0

⇒ T(n) = O(f(n))

d) T(n) = 2100

 T(n) = 2100 ≤ 2100n , ∀ n ≥ 1

⇒ T(n) ≤ n

Chọn C = 1 , n0 = 1 , f(n) = n

T(n) ≤ Cf(n) , ∀ n ≥ n0

⇒ T(n) = O(f(n))

e) T(n) = 5

n

 T(n) = 5

n ≤ 5 , ∀ n ≥ 1

⇒ T(n) ≤ 5

Chọn C = 1 , n0 = 1 , f(n) = 5

T(n) ≤ Cf(n) , ∀ n ≥ n0

⇒ T(n) = O(f(n))

f) T(n) = 1

10n3+ 100n

Trang 4

 T(n) = 1

10n3+ 100n ≤ 1

10n3+ 100n3 , ∀ n ≥ 1

⇒ T(n) ≤ 100,1n3

Chọn C = 100,1 , n0 = 1 , f(n) = n3

T(n) ≤ Cf(n) , ∀ n ≥ n0

⇒ T(n) = O(f(n))

g) T(n) = 20n3− 10nlogn + 5

 T(n) = 20n3− 10nlogn + 5 ≤ 20n3+ 5 ≤ 20n3+ 5n3 ≤ 25n3 , ∀ n ≥ 1

⇒ T(n) ≤ 25n3

Chọn C = 25 , n0 = 1 , f(n) = n3

T(n) ≤ Cf(n) , ∀ n ≥ n0

⇒ T(n) = O(f(n))

h) T(n) = 3logn + loglogn

 T(n) = 3logn + loglogn ≤ 3logn + logn ≤ 4logn , ∀ n ≥ 1

⇒ T(n) ≤ 4logn

Chọn C = 4 , n0 = 1 , f(n) = logn

T(n) ≤ Cf(n) , ∀ n ≥ n0

⇒ T(n) = O(f(n))

Câu 3 :

Xét f(n) = 7n 2 ; g(n)=n 2 – 80n ; h(n)=n 3

Chứng minh:

f = O(g); g = O(f); f = O(h); h#O(f)

Giải:

Trang 5

 C/m: f=O(g)

Giả sử: 7n2 ≤ C(n2 – 80n) , ∀n ≥ n0

Sau khi xét bảng biến thiên của bất phương trình trên em chọn được:

C = 8, n0 = 640s thì bất phương trình trên thỏa

 f(n)≤ cg(n) , ∀n ≥ n0

 f(n) = O(g)

 C/m: g = O(f)

g(n) = n2− 80n ≤ n2 ≤ 7n2, ∀n ≥ 1

Chọn C = 1, n0 =1

 g(n) ≤ cf(n)∀n ≥ n0

 g(n) = Of(n)

 C/m: f = O(h)

Ta có f(n) = 7n2 ≤ 7n3 , ∀n ≥ 1

Chọn C = 7,n0 = 1

 f(n) ≤ h(n) ∀n ≥ n0

 f = O(h)

 C/m: h ≠ O(f)

Giả sử: h(n) = n3 ≤ C(7n2), ∀n ≤ 𝑛0, C ∈ R+

Xét dấu hàm số 𝑘(𝑛) = n3− C(7n2)

Vậy chỉ cần n = 7C là n3 > C(7n2)

Đặt n0 = 7C

 h(n) ≤ Cf(n) , ∀n ≤ 𝑛0

 ∀n ≥ 𝑛0 thì h(n) ≠ Cf(n)

 h(n) ≠ O(f)

Trang 6

Câu 4: Chứng minh

𝟏

𝟐𝒏

𝟐 = 𝑶(𝒏𝟐)

𝒏𝟐+ 𝟏 = 𝑶(𝒏𝟐)

⇒ 𝟏

𝟐𝒏

𝟐 = 𝒏𝟐 + 𝟏 ? ? ? ?

Giải:

Dấu “=” ở đẳng thức chứa O(𝑛2) nó chỉ là ký hiệu, thể hiện

1

2𝑛2 € 𝑂(𝑛2), O(𝑛2) chỉ là một tập hợp

Còn dấu “=” ở 1

2𝑛2 = 𝑛2+ 1 nó thể hiện là một đẳng thức

Vì vậy 1

2𝑛2 = 𝑛2+ 1 là sai

Câu 5: Chứng minh

Giải:

2 Chứng minh: f(n)∈ 𝑂(𝑔(𝑛))𝑣à 𝑔(𝑛) ∈ 𝑂(ℎ(𝑛)) => 𝑓(𝑛) ∈ 𝑂(ℎ(𝑛))

Ta có : f(n)∈ 𝑂(𝑔(𝑛))

 ∃𝑐1 ∈ 𝑅+, 𝑛0 ∈ 𝑁, ∀𝑛 ≥ 𝑛0

 𝑓(𝑛) ≤ 𝑐1𝑔(𝑛) (1)

Ta có: g(n)∈ 𝑂(ℎ(𝑛))

 ∃𝑐2 ∈ 𝑅+, 𝑛0 ∈ 𝑁, ∀𝑛 ≥ 𝑛0

 g(n)≤ 𝑐2ℎ(𝑛) (2)

 c1g(n)≤ 𝑐1𝑐2ℎ(𝑛)

Ta có: f(n)≤ 𝑐1𝑔(𝑛) ≤ 𝑐1𝑐2ℎ(𝑛)

 f(n)≤ 𝑐1𝑐2ℎ(𝑛)

Trang 7

Đặt c3=𝑐1𝑐2

 ∃𝑐3 ∈ 𝑅+, 𝑛0 ∈ 𝑁, ∀𝑛 ≥ 𝑛0

 𝑓(𝑛) ≤ 𝑐3ℎ(𝑛)

 f(n)∈ 𝑂(ℎ(𝑛)) ( đpcm )

4 O(f(n))=O(g(n))  g(n)∈ 𝑂(𝑓(𝑛)), 𝑓(𝑛) ∈ 𝑂(𝑔(𝑛))

Ta có: O(f(n))=O(g(n))

 ∃𝑓(𝑛) ∈ 𝑂(𝑔(𝑛))

 ∃𝑔(𝑛) ∈ 𝑂(𝑔(𝑛))

 ∃𝑔(𝑛) ∈ 𝑂(𝑓(𝑛))

Ta có:

g(n)∈ 𝑂(𝑓(𝑛))

 ∃𝑐1 ∈ 𝑅+, 𝑛0 ∈ 𝑁, ∀𝑛 ≥ 𝑛0

 𝑔(𝑛) ≤ 𝑐1𝑓(𝑛)

𝑓(𝑛) ∈ 𝑂(𝑔(𝑛))

 ∃𝑐2 ∈ 𝑅+, 𝑛0 ∈ 𝑁, ∀𝑛 ≥ 𝑛0

 f(n)≤ 𝑐2𝑔(𝑛)

Ta có: g(n)≤ 𝑐1𝑓(𝑛)

f(n)≤ 𝑐2𝑔(𝑛) => 𝑐1𝑓(𝑛) ≤ 𝑐1𝑐2𝑔(𝑛) => 𝑔(𝑛) ≤ 𝑐1𝑐2𝑔(𝑛)

∃𝑐3 = 𝑐1𝑐2 ∈ 𝑅+, 𝑛0 ∈ 𝑁, ∀𝑛 ≥ 𝑛0

=> 𝑔(𝑛) ≤ 𝑐3𝑔(𝑛) => 𝑔(𝑛) ∈ 𝑂(𝑔(𝑛))

Ta có: g(n) ≤ 𝑐1𝑓(𝑛) => 𝑐2𝑔(𝑛) ≤ 𝑐1𝑐2𝑔(𝑛)

 f(n) ≤ 𝑐2𝑔(𝑛) ≤ 𝑐1𝑐2𝑓(𝑛)

 f(n) ≤ 𝑐1𝑐2𝑓(𝑛)

 ∃𝑐3 = 𝑐1𝑐2 ∈ 𝑅+, 𝑛0 ∈ 𝑁, ∀𝑛 ≥ 𝑛0

 f(n)≤ 𝑐3𝑓(𝑛)

 f(n)∈ 𝑂(𝑓(𝑛))

Ta có:

∃f(n)∈ 𝑂(𝑓(𝑛))

Trang 8

∃f(n)∈ 𝑂(𝑔(𝑛)) (2)

∃g(n)∈ 𝑂(𝑔(𝑛))

∃g(n)∈ 𝑂(𝑓(𝑛))

Từ (1)(2)

 O(f(n))=O(g(n)) g(n)∈ 𝑂(𝑓(𝑛)), 𝑓(𝑛) ∈ 𝑂(𝑔(𝑛))

12)

2𝑛+1 = 𝑂(2𝑛)

𝑇𝑎 𝑐ó: lim

𝑛→∞

2𝑛+1

2 𝑛 = 2 < +∞

 2𝑛+1 = 𝑂(2𝑛)

11)

log𝑛𝑥 = O(logn), ∀x>0

Ta có: lim

𝑛→∞

log𝑛𝑥 logn = 𝑥, ∀x > 0 => x < +∞

=> log𝑛𝑥 = O(logn), ∀x>0

9)

f(n) là một đa thức bậc d => f(n) = O(𝑛𝑑)

Ta có : công thức đa thức bậc d là : a1nd+a2𝑛𝑑−1+a3nd-2+ +c ( c là hằng số) ( a1≠ 0)

Ta có: lim

𝑛→∞

𝑎1𝑛𝑑+𝑎2𝑛𝑑−1+𝑎3𝑛𝑑−2+ +c

𝑛 𝑑 = 𝑎1 ≠ 0

 f(n) = O(𝑛𝑑)

6)

f(n) = O(g(n)) => a.f(n) = O(g(n)) ∀ a> 0

Trang 9

Ta có: f(n)=O(g(n))

f(n)∈ 𝑂(𝑔(𝑛))

 ∃𝑐1 ∈ 𝑅+, 𝑛0 ∈ 𝑁, ∀𝑛 ≥ 𝑛0

 f(n)≤ 𝑐1𝑔(𝑛)

Đặt 1

𝑎 = 𝑐1

𝑐

 ∃1𝑎 ∈ 𝑅+, 𝑛0 ∈ 𝑁, ∀𝑛 ≥ 𝑛0

𝑓(𝑛) ≤ 1

𝑎 cg(n)

𝑣ì 𝑎 > 0 => 𝑎𝑓(𝑛) ≤ 𝑐𝑔(𝑛)

=> 𝑎𝑓(𝑛) ∈ 𝑂(𝑔(𝑛)) ∀ a> 0

Câu 6: Chứng minh dùng giới hạn

𝒇(𝒏) = 𝟐𝒏 ∈ 𝑶(𝒏!)

𝒇(𝒏) = 𝟐𝒏𝟓+ 𝟔𝒏𝟐+ 𝟐 ∈ 𝑶(𝒏𝟓)

Giải:

 Xét lim

𝑛→∞

2𝑛 𝑛! , Áp dụng tiêu chuẩn D’Alembert, ta có:

lim

𝑛→∞

2𝑛

𝑛! = lim𝑛→∞

2𝑛+1 (𝑛 + 1)!

𝑛!

2𝑛 = lim

𝑛→∞

2

𝑛 + 1 = 0 Vậy 2𝑛 = ѳ(𝑛!)

 Xét

lim

𝑛→∞

𝟐𝒏𝟓 + 𝟔𝒏𝟐 + 𝟐

Vậy 𝟐𝒏𝟓+ 𝟔𝒏𝟐+ 𝟐 = 𝑶(𝒏𝟓)

Ngày đăng: 22/10/2014, 23:14

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w