Up5me
Trang chủ > Câu hỏi lẻ > KkHHt9ycO52m

Đề bài

Phương án nào sau đây tính được đúng độ phức tạp của hàm thời gian $T\left( n \right) = 3{n^4} + 2{n^2}{\rm{log}}n + 10$ ?

${\rm{O}}\left( {{n^3}} \right) + 1$.
${\rm{O}}\left( {{n^4}} \right)$.
${\rm{O}}\left( {{n^2}} \right) + 1$.
${\rm{O}}\left( {{n^4}} \right) + 1$.
Đáp án đúng: B

Xem lời giải

Phương pháp giải

Lời giải chi tiết

Để xác định độ phức tạp của hàm thời gian $T(n) = 3n^4 + 2n^2 \log n + 10$, ta cần xác định độ phức tạp của từng thành phần trong hàm.

  • Thành phần thứ nhất là $3n^4$, có độ phức tạp là $\mathcal{O}(n^4)$.
  • Thành phần thứ hai là $2n^2 \log n$, có độ phức tạp là $\mathcal{O}(n^2 \log n)$.
  • Thành phần thứ ba là hằng số $10$, có độ phức tạp là $\mathcal{O}(1)$.

Trong các thành phần trên, $3n^4$ là thành phần có bậc lớn nhất, tương ứng với tốc độ tăng nhanh nhất khi $n$ lớn. Do đó, nó quyết định độ phức tạp tiệm cận của toàn bộ hàm $T(n)$.

Vậy, $T(n)$ có độ phức tạp là $\mathcal{O}(n^4)$.

Phân tích các phương án:

  • Phương án A: $\mathcal{O}(n^3) + 1$ - Sai, vì bậc lớn nhất là $n^4$, không phải $n^3$.
  • Phương án B: $\mathcal{O}(n^4)$ - Đúng, vì như phân tích ở trên, $T(n)$ có độ phức tạp bậc $n^4$.
  • Phương án C: $\mathcal{O}(n^2) + 1$ - Sai, vì bậc lớn nhất là $n^4$, không phải $n^2$.
  • Phương án D: $\mathcal{O}(n^4) + 1$ - Cơ bản đúng về bậc lớn nhất là $n^4$ nhưng cách diễn đạt không chuẩn cho độ phức tạp, vì phần $+1$ là không cần thiết khi viết độ phức tạp.

Do đó, phương án đúng là B. $\mathcal{O}(n^4)$.

Chú ý khi giải

  • Khi xác định độ phức tạp của một hàm, ta cần tìm thành phần có bậc lớn nhất trong biểu thức, vì thành phần này là yếu tố quyết định tốc độ tăng của hàm khi kích thước đầu vào $n$ tăng lên.
  • Ký hiệu $\mathcal{O}$ dùng để thể hiện độ phức tạp tiệm cận và thường chỉ cần đến bậc cao nhất, không cần cộng trừ hằng số nhỏ hơn hay các bậc thấp hơn.
  • Khi gặp các bài toán tính độ phức tạp, hãy chú ý đến sự hiện diện của các thành phần chứa logarit như $n^2 \log n$ để phân tích chính xác độ phức tạp.