Dalam CLRS (pada halaman 49-50), apa arti dari pernyataan berikut:
hanya merupakan fungsi anonim tunggal (dari ), tetapi tidak sama dengan , yang tidak benar-benar memiliki interpretasi. "
asymptotics
landau-notation
kesari
sumber
sumber
Jawaban:
Karena , menggoda untuk menyarankan bahwa ... tetapi ini sebenarnya tidak valid. Alasannya adalah bahwa mungkin ada konstanta yang berbeda untuk setiap istilah dalam jumlah.1+2+⋯+n=O(n2) O(1)+O(2)+⋯+O(n)=O(n2)
Sebuah contoh
Izinkan saya memberi contoh. Pertimbangkan jumlah , , , , dan seterusnya. Perhatikan bahwa , , , , dan seterusnya untuk setiap istilah dalam jumlah. Oleh karena itu, masuk akal untuk menulis dalam bentuk . Jadi bisakah kita menyimpulkan bahwa ? Nggak. Bahkan, , jadi .S(1)=12 S(2)=12+22 S(3)=12+22+32 S(4)=12+22+32+42 12∈O(1) 22∈O(2) 32∈O(3) 42∈O(4) S(j)=12+⋯+j2 S(j)=O(1)+⋯+O(j) S(j)=O(j2) S(n)=n(n+1)(2n+1)/6 S(n)=Θ(n3)
Jika itu tidak membantu, mari kita coba pengembangan matematika berikut yang lebih tepat:
Formalisasi
Ingat bahwa penafsiran, katakanlah, adalah bahwa ia adalah himpunan fungsi non-negatif (yaitu, himpunan fungsi sedemikian sehingga ada konstanta sedemikian rupa sehingga untuk semua ).O(n2) f(n) f(n) c≥0,d≥0 f(n)≤c⋅n2 n≥d
Yang paling dekat dengan interpretasi adalah bahwa ia adalah himpunan fungsi dari bentuk sedemikian rupa sehingga , , ..., .O(1)+O(2)+⋯+O(n) f1(n)+f2(n)+⋯+fn(n) f1(n)∈O(1) f2(n)∈O(2) fn(n)∈O(n)
Tetapi sekarang konstanta untuk setiap dapat berbeda. Jadi, setiap adalah fungsi non-negatif sedemikian rupa sehingga terdapat konstanta dengan untuk semua .fi fi fi ci≥0,di≥0 fi(n)≤ci⋅i n≥di
Sekarang, mengingat ini, apa yang bisa kita katakan tentang ? Tidak banyak berguna. Kita tahu bahwa ada konstanta sedemikian rupa sehingga untuk semua . Sekarang apa yang bisa kita katakan tentang jumlah ini? Yah, jawabannya adalah kita tidak bisa mengatakan apa-apa sama sekali. Ini bisa menjadi besar secara sewenang-wenang. Sangat menggoda untuk membiarkan dan mengatakan bahwa ... tetapi ini sebenarnya tidak benar, karena kita membutuhkan nilai konstanta tunggal yang bekerja untuk semua , dan nilainyag(n)=f1(n)+f2(n)+⋯+fn(n) d=max(d1,d2,…,dn) g(n)≤c1⋅1+c2⋅2+⋯+cn⋅n n≥d c=max(c1,c2,…,cn) g(n)≤c⋅(1+2+⋯+n)≤c⋅n2=O(n2) c n max(c1,c2,…,cn) adalah fungsi dari , bukan konstanta.n
Jadi mungkin tidak ada konstanta sehingga ; mungkin tidak ada konstanta sehingga . Tidak ada jaminan bahwa .c g(n)≤c⋅(1+2+⋯+n) c g(n)≤c⋅n2 g(n)∈O(n2)
Untuk lebih banyak membaca
Lihat https://math.stackexchange.com/q/86076/14578 dan jumlah Jumlah Landau ditinjau kembali untuk pertanyaan lain yang berhubungan dengan masalah umum ini.
sumber
Alasan bahwa komentar CLRS ini membingungkan adalah bahwa, secara teknis, adalah didefinisikan sebagai . Apa yang sebenarnya terjadi adalah bahwa CLRS menyalahgunakan notasi demi kesederhanaan:∑ni=1O(i) O(1)+O(2)+…O(n)
Alih-alih, CLRS ingin Anda menafsirkan sebagai mana fungsi generik . Sebagai contoh, mereka akan menulis bahwa adalah , atau .∑ni=1O(i) ∑ni=1f(i) f(i)∈O(i) ∑ni=13i−5 ∑ni=1O(i) O(n2)
sumber