2011-05-01 31 views
7

Tôi đang cố gắng tìm ra liệu f(n)=n^(logb(n)) có ở trong Theta(n^k) và do đó phát triển đa thức hoặc trong Theta(k^n) và do đó tăng theo cấp số nhân.f (n) = n^log (n) phức tạp đa thức hoặc mũ số

Trước tiên, tôi đã cố gắng đơn giản hóa chức năng: f(n) = n^(logb(n)) = n^(log(n)/log(b)) = n^((1/log(b))*log(n)) và vì 1/log(b) là hằng số chúng tôi nhận được f(n)=n^log(n).

Nhưng bây giờ tôi bị kẹt. Đoán của tôi là f(n) tăng theo cấp số nhân trong Theta(n^log(n)) hoặc thậm chí siêu theo cấp số nhân bởi vì số mũ log(n) cũng đang tăng lên.

+2

+1 để thực sự giải thích bạn đã đi bao xa và nơi bạn đang mắc kẹt – sleske

Trả lời

1

Hãy thử thay thế n bằng b^m, làm cho logb(n) = m. Điều đó sẽ giúp bạn có được một ý tưởng về nơi để đi.

2

Bạn có thể viết n^(log(n)) như (k^(logk(n)))^(log(n)) = k^(K*(log(n)^2)). Kể từ (log(n))^2 < n cho n đủ lớn, thì điều này có nghĩa là n^(log(n)) sẽ tăng trưởng chậm hơn so với k^n

+1

Nơi bạn đã sử dụng tăng trưởng logarit đó chậm hơn bất kỳ đa thức nào, bao gồm sqrt (n). – drizzd

+0

+1. Đúng điểm tốt. Cảm ơn bạn đã làm rõ điểm này. –

+0

@drizzd: Kể từ khi nào là sqrt (n) một đa thức? – sleske

1

nó có vẻ như nó không phải theta (mũ) hoặc theta (đa thức); các áp phích trên cho thấy lý do tại sao nó không phải là mũ. Lý do tại sao nó không phải là đa thức có thể được thực hiện với một bằng chứng đơn giản bằng ví dụ truy cập.

bằng chứng rằng n^logn không phải là O (n^k):

  • giả sử có một số k, với một số c và n_0 như vậy mà cho n> n_0, c * n^k> n^log n. đây là định nghĩa của O (n^k).
  • thật đơn giản để tìm một n, với các hằng số, sao cho nó không giữ.
  • nếu c> 1, thì đó là n (ck)^ck.
  • nếu c < 1, thì đó là k^k.
Các vấn đề liên quan