Đây là tất cả rất lượn sóng, nhưng có một lý do toán học tại sao chúng ta không sử dụng Theta (c) và thay vào đó sử dụng Theta (1). Thay vào đó, tôi sẽ sử dụng ký hiệu Big O để hiển thị điều này.
Nó có liên quan đến một tài sản của Big Theta (cũng như ký hiệu Big O và Big Omega). Nếu bạn có một chức năng với tốc độ tăng trưởng O(g(x))
và khác với tốc độ tăng trưởng O(c * g(x))
ở đâu c
là một số không đổi, bạn sẽ nói họ có tốc độ tăng trưởng tương tự. Đó làO(c * g(x)) = O(g(x))
Chúng ta có thể nói điều này bởi vì định nghĩa của ký hiệu Big O ( f(x) = O(g(x))
) có nghĩa là chúng ta có một hàm f(x)
và hàm g(x)
sao |f(x)| <= k * |g(x)|
cho một số k
giá trị đủ lớn và không đổi x
. Khi nhân với hằng số c
, chúng ta sẽ có:
O(c * g(x)) => k * |c * g(x)| = k * |c| * |g(x)| <= k' * g(x)
Ở đâu k' = k * |c|
Lưu ý rằng |k' * g(x)| <= k'' g(x)
đối với một số k''
giá trị không đổi và đủ lớn x
, có nghĩa là k' * g(x)
tăng trưởng với tốc độ O(g(x))
và do đóO(c * g(x)) = O(g(x))
Khi nào g(x) = 1
, chúng ta có O(1)
sự tăng trưởng, nói rằng O(c)
sự tăng trưởng đối với một số giá trị c
không cho chúng ta biết bất cứ điều gì bởi vì hằng số đã được xác định theo định nghĩa của ký hiệu Big O. giản thểO(c) = O(1)