Trong việc chứng minh và bác bỏ các câu hỏi của Big O nói rõ ràng sử dụng định nghĩa để chứng minh và bác bỏ, câu hỏi của tôi là, là những gì tôi đang làm đúng?Chứng minh và giải quyết BigO
Ví dụ bạn có một câu hỏi đó là g (n) = O (f (n)) ... Để chứng minh điều đó tôi đã làm như sau
g(n) <= C(F(n))
g(n)/F(n) <= C .. then give n=1 and solve for C , which proves it.
Các mâu thuẫn mà tôi chạy đến khi làm điều này là khi tôi tiếp cận một vấn đề bác bỏ công cụ này
ví dụ
g (n) = O (F (n)) để bác bỏ nó tôi sẽ làm
g (n)> = C (F (n)) và giải quyết cho C một lần nữa. Tuy nhiên điều này khiến tôi tin rằng O lớn có thể được chứng minh và bác bỏ ngay lập tức? 100% sai.
Sử dụng số thế giới thực (Chứng minh)
n^2 + 3 = O(n^2)
(n^2 + 3)/n^2 <= C assume n = 1 then C >= 3
Disproving
n^2 + 3 = O(n^2)
(n^2 + 3)/n^2 >= C assume n = 1 then C <= 3
n^2 + 3 = O(n^2)
cả hai nói rằng @ n = 1 và c = 3 thuật toán là O (n^2) và là KHÔNG O (n^2) .
Bất kỳ ai có thể giúp tôi làm rõ sự nhầm lẫn của mình và giúp tôi tìm hiểu cách giải thuật tốt nhất để giải quyết các câu hỏi O lớn?
hi @outis, tôi biết nó đã được một thời gian kể từ khi bạn đăng câu trả lời nhưng tôi không hiểu bằng chứng của bạn. Trong 'n^2-1> 2' tại sao bạn quyết định đặt '-1'? bởi vì n^2 là> 2. Làm thế nào bạn nhận được '2 (n^2-1)> (n^2-1) +2'? Tôi không hiểu logic đằng sau nó. Tôi cũng không hiểu làm thế nào bạn có để '2n^2> (n^2-1) +4', tại sao bạn thả (n^2-1) từ phần đầu tiên của tuyên bố? làm thế nào bạn có được 4 ở cuối tuyên bố? Tôi có một cảm giác mạnh mẽ đây là những câu hỏi đơn giản nhưng tôi thực sự không thể hiểu được chúng. Tin tôi đi, tôi đã thử. Tôi hy vọng bạn sẽ trả lời. Cảm ơn trước. – RegUser
@RegUser: Mỗi sự bất bình đẳng (khác với lần đầu tiên) có nguồn gốc từ trước đó (do đó là "⇒"). Để theo dõi, áp dụng các quy tắc đại số chuẩn, như "a> b ⇒ a + c> b + c". Các bước đơn giản hóa đã bị bỏ sót (vì vậy "a + a ..." được viết là "2a", thay vì "a + a = 2a ..."). – outis