saya menulis
tetapi teman saya mengatakan ini salah. Dari lembar contekan TCS saya tahu bahwa jumlah ini juga disebut yang memiliki pertumbuhan logaritmik dalam . Jadi ikatan saya tidak terlalu tajam, tetapi cukup untuk analisis yang saya butuhkan.
Apa kesalahan yang telah aku perbuat?
Sunting : Teman saya mengatakan bahwa dengan alasan yang sama, kami dapat membuktikannya
Ini jelas salah! Apa yang terjadi disini?
asymptotics
landau-notation
Raphael
sumber
sumber
Jawaban:
Apa yang Anda lakukan adalah penyalahgunaan notasi yang sangat nyaman.
Beberapa pedant akan mengatakan bahwa apa yang Anda tulis adalah omong kosong, karena menunjukkan satu set dan Anda tidak dapat melakukan operasi aritmatika pada mereka seperti yang Anda lakukan.O (f)
Tapi itu ide yang baik untuk mengabaikan pedant itu dan menganggap bahwa adalah singkatan dari beberapa anggota set. Jadi ketika kita mengatakan f ( n ) = g ( n ) + O ( n ) , apa yang sebenarnya kita maksudkan jika itu f ( n ) - g ( n ) ∈ O ( n ) . (Catatan: beberapa pedant mungkin ngeri pada pernyataan ini juga, mengklaim bahwa f ( n ) adalah angka dan fO (f) f( n ) = g( n ) + O ( n ) f( n ) - g( n ) ∈ O ( n ) f( n ) f adalah fungsinya!)
Ini membuatnya sangat nyaman untuk menulis ekspresi seperti
Apa ini berarti adalah bahwa ada beberapa seperti yangf∈ O ( n1 / 3)
Dalam kasus Anda
Anda menyalahgunakannya lebih jauh dan Anda harus berhati-hati.
Ada dua kemungkinan interpretasi di sini: Apakah merujuk ke fungsi n , atau fungsi k ?O (1) n k
Saya percaya interpretasi yang tepat adalah menafsirkannya sebagai fungsi dari .k
Jika Anda mencoba berpikir itu sebagai fungsi dari , pikir tidak salah, mungkin menyebabkan kesalahan-kesalahan potensial, seperti berpikir k adalah O ( 1 ) dan mencoba untuk menulis Σ n k = 1 k = Σ n k = 1 O ( 1 )n k O (1) ∑nk = 1k = ∑nk = 1O (1)
Jika Anda mencoba menganggapnya sebagai fungsi , maka memang benar bahwa, jika f = O ( g ) (seperti argumen pergi ke ∞ ) dan g tidak pernah 0 , ituk f= O ( g) ∞ g 0
Perhatikan bahwa di tengah, kami telah menggunakan penyalahgunaan notasi berarti untuk beberapa fungsi h ∈ OO(g(k)) jumlahnya adalah Σ n k = 1 h ( k ) . Perhatikan bahwa fungsi akhir di dalam O mengacu pada fungsi n . Buktinya tidak begitu sulit, tetapi Anda harus memenuhi kenyataan bahwa Anda berurusan dengan batas atas asimptotik (yaitu untuk argumen yang cukup besar), tetapi jumlahnya mulai tepat pada 1 .h∈O(g) ∑nk=1h(k) O n 1
Jika Anda mencoba menganggapnya sebagai fungsi dari , maka juga benar bahwa jika f = O ( g ) (seperti argumen menuju ∞ ) makan f= O ( g) ∞
Jadi bukti Anda pada dasarnya benar, dalam interpretasi mana pun.
sumber
Apa yang Anda tulis sepenuhnya benar. The th nomor harmonis memang di set O ( n ) .n O ( n )
Bukti: . ◻∑ni = 11saya≤ lnn + 1 ≤ 2 n = O ( n ) □
Batas atas tidak ketat , tetapi benar.O ( n )
sumber
Untuk contoh kedua, Anda tidak dapat mengklaim bahwa
karena bervariasi dengan n . Setelah beberapa langkah, inilah i > n / 2 . Cara yang lebih tepat adalah dengan mengatakan bahwa i = O ( n ) karena memang, sepanjang penjumlahan saya tidak pernah melebihi 1 ⋅ n . Dengan alasan ini, n ∑ i = 1 i = n ∑ i = 1 O ( n ) = n O ( n ) = O (saya n i > n / 2 i = O ( n ) saya 1 ⋅ n
Namun hal yang benar untuk dilakukan adalah menggunakan notasi O-besar hanya di akhir. Batas atas penjumlahan Anda sekencang yang Anda bisa, dan hanya ketika Anda selesai menggunakan notasi asimptotik untuk menghindari perangkap ini.
sumber