Trong CLRS (trên trang 49-50), ý nghĩa của tuyên bố sau là gì:
chỉ là một hàm ẩn danh duy nhất (của ), nhưng không giống với O (1) + O (2) + \ cdots + O (n) , mà không thực sự có một sự giải thích. "
Trong CLRS (trên trang 49-50), ý nghĩa của tuyên bố sau là gì:
chỉ là một hàm ẩn danh duy nhất (của ), nhưng không giống với O (1) + O (2) + \ cdots + O (n) , mà không thực sự có một sự giải thích. "
Câu trả lời:
Vì , nên gợi ý rằng ... nhưng điều này không thực sự hợp lệ Lý do là có thể có một hằng số khác nhau cho mỗi thuật ngữ trong tổng.O ( 1 ) + O ( 2 ) + ⋯ + O ( n ) = O ( n 2 )
Để tôi lấy một ví dụ. Xét các tổng , , , , v.v. Lưu ý rằng , , , , v.v. Tổng. Do đó, sẽ hợp lý khi viết dưới dạng . Vậy chúng ta có thể kết luận rằng không? Không. Trong thực tế, , vì vậy . S ( 2 ) = 1 2 + 2 2 S ( 3 ) = 1 2 + 2 2 + 3 2 S ( 4 ) = 1 2 + 2 2 + 3 2 + 4 2 1 2 ∈ O ( 1 ) 2 2 ∈ O ( 2 ) 34 2 ∈ O ( 4 ) S ( j ) = 1 2 + ⋯ + j 2 S ( j ) = O ( 1 ) + ⋯ + O ( j ) S ( j ) = O ( j 2 ) S ( n ) = n ( n + 1S ( n ) = Θ ( n 3 )
Nếu điều đó không có ích, hãy thử phát triển toán học chính xác hơn sau đây:
Hãy nhớ rằng cách giải thích của là một tập hợp các hàm không âm (cụ thể là tập hợp các hàm sao cho tồn tại các hằng số sao cho với mọi ).f ( n ) f ( n ) c ≥ 0 , d ≥ 0 f ( n ) ≤ c ⋅ n 2 n ≥ d
Gần nhất chúng ta có thể đi đến một cách giải thích là tập hợp các hàm có dạng sao cho , , ..., .f 1 ( n ) + f 2 ( n ) + ⋯ + f n ( n ) f 1 ( n ) ∈ O ( 1 ) f 2 ( n ) ∈ O ( 2 ) f n ( n ) ∈
Nhưng bây giờ các hằng số cho mỗi có thể khác nhau. Do đó, mỗi là một hàm không âm sao cho tồn tại các hằng số với cho tất cả .f i f i c i ≥ 0 , d i ≥ 0 f i ( n ) ≤ c i ⋅ i n ≥ d i
Bây giờ, với điều này, chúng ta có thể nói gì về ? Không có nhiều hữu ích. Chúng tôi biết rằng tồn tại hằng số sao cho cho tất cả . Bây giờ chúng ta có thể nói gì về số tiền này? Chà, câu trả lời là chúng ta không thể nói gì cả. Nó có thể lớn tùy ý. Thật hấp dẫn khi để và nói rằng ... nhưng điều này không thực sự chính xác, vì chúng ta cần một giá trị không đổi duy nhất của hoạt động cho tất cả và giá trịd = max ( d 1 , d 2 , Trần , d n ) g ( n ) ≤ c 1 ⋅ 1 + c 2 ⋅ 2 + ⋯ + c n ⋅ n nc = max ( c 1 , c 2 , ... , c n ) g ( n ) ≤ c ⋅ ( 1 + 2 + ⋯ + n ) ≤ c ⋅ n 2 = O ( n 2 ) c n max ( c 1 , c 2 , ... , c n ) n là hàm của , không phải là hằng số.
Vì vậy, có thể không có bất kỳ hằng số sao cho ; có thể không có bất kỳ hằng số sao cho . Không có gì đảm bảo rằng .g ( n ) ≤ c ⋅ ( 1 + 2 + ⋯ + n ) c g ( n ) ≤ c ⋅ n 2 g ( n ) ∈ O ( n 2 )
Xem https://math.stackexchange.com/q/86076/14578 và các điều khoản Sums của Landau được xem xét lại cho các câu hỏi khác liên quan đến vấn đề chung này.
Lý do khiến nhận xét của CLRS khó hiểu là về mặt kỹ thuật, được định nghĩa là . Điều thực sự xảy ra là CLRS đang lạm dụng ký hiệu vì đơn giản:O ( 1 ) + O ( 2 ) + ... O ( n )
Thay vào đó, CLRS muốn bạn diễn giải là trong đó hàm chung . Ví dụ: họ sẽ viết rằng là hoặc .Σ n i = 1 f ( i ) f ( i ) ∈ O ( i ) Σ n i = 1 3 i - 5 Σ n i = 1 O ( i ) O ( n 2 )