Jawaban ini memiliki dua bagian, bersama-sama menunjukkan bahwa batas yang benar adalah :Θ(logN)
- Batas bawah (dikalikan jari-jari lingkaran pertama).Ω(logN)
- Batas atas yang cocok dari .O(logN)
Batas bawah Ω(logN)
Pertimbangkan dua unit lingkaran yang menyentuh pada suatu titik . (Lihat di bawah; p di sebelah kanan, bug dimulai di sebelah kiri.) Berganti-ganti antara satu lingkaran dan lainnya. Bug akan bergerak naik-turun zig-zag melintasi celah antara dua lingkaran, sebagian besar bergerak naik dan turun tetapi juga berkembang perlahan ke kanan. Jika saya melakukan trigonometri dengan benar, setelah N langkah, jarak dari titik umum adalah Θ ( 1 / √ppN, dan langkahNakan menyebabkan bug berjalanΘ(1/N), untuk jarak totalΘ(logN).Θ(1/N−−√)NΘ(1/N)Θ(logN)
Berikut ini sketsa perhitungannya. Pertimbangkan dua langkah berurutan yang dilakukan bug. Dia beralih dari titik , ke b , ke c . Poin a dan c berada di lingkaran yang sama; titik b ada di lingkaran lain. Biarkan o menjadi pusat lingkaran di mana a berada. Pertimbangkan tiga segitiga berikut, dalam urutan ukuran menurun:abcacboa
- Segitiga isokel (ingat p adalah titik umum).△oapp
- Segitiga .△abp
- Segitiga kecil △abc
Segitiga ini hampir mirip (yaitu, skala modulo kongruen). Lebih tepatnya, untuk , ketiganya memiliki properti berikut:
rasio panjang kaki pendek dengan kaki panjang adalah Θ ( ϵ ) . (Saya tidak akan membuktikan ini secara lebih rinci di sini, tetapi perhatikan bahwa ϵ → 0
saat bug berjalan, dan dengan mengganggu satu titik pada setiap segitiga dengan jumlah yang dapat diabaikan, segitiga dapat dibuat serupa.)ϵ=|ap|Θ(ϵ)ϵ→0
Kaki panjang dan p o dari segitiga pertama memiliki panjang 1. Kaki pendek | a p | memiliki panjang ϵ . Segmen sebuah p adalah kaki panjang segitiga kedua, sehingga kaki pendek yang segitiga a b memiliki panjangcopo|ap|ϵapab . Segmen a b adalah kaki panjang dari segitiga ketiga, sehingga kaki pendek segitiga a c memiliki panjang Θ ( ϵ 3 ) . Dengan demikian, dalam dua langkah ini bug tersebut:Θ(ϵ2)abacΘ(ϵ3)
- Jarak bug perjalanan adalah Θ ( ϵ 2 ) .|ab|+|bc|Θ(ϵ2)
- Jarak dari bug ke titik umum berkurang dari ϵ ke ϵ - Θ ( ϵ 3 ) .pϵϵ−Θ(ϵ3)
Tentukan waktu menjadi jumlah langkah sebelum ε t ≈ 1 / 2 k . Dengan (2) di atas, ϵ berkurang dengan faktor konstan setelah sekitar Θ ( 1 / ϵ 2 ) langkah, jadi t k + 1 = t k + Θ ( 2 2 k ) = t k + Θ ( 4 k ) . Dengan demikian, t k = Θ ( 4 ktkϵt≈1/2kϵΘ(1/ϵ2)tk+1=tk+Θ(22k)=tk+Θ(4k) . Artinya, setelah Θ ( 4 k ) langkah, jarak dari bug ke titik yang sama p akan sekitar 1 / 2 k . Mengubah variabel, setelah N langkah, jarak dari bug ke titik umum adalah ϵ = Θ ( 1 / √tk=Θ(4k)Θ(4k)p1/2kN. Dan, pada langkahN, bug bergerakΘ(ϵ2)=Θ(1/N). Jadi total jarak yang ditempuh dalam pertamaNlangkah adalahΘ(1+1/2+1ϵ=Θ(1/N−−√)NΘ(ϵ2)=Θ(1/N)N .Θ(1+1/2+1/3+...+1/N)=Θ(logN)
Ini adalah batas bawah.
Itu meluas ke Varian 2 yang diusulkan (seperti yang saya mengerti), sebagai berikut:
Menambahkan batasan bahwa bug harus pindah ke titik terdekat di persimpangan dua lingkaran yang paling baru ditempatkan tidak membantu. Artinya, batas bawah atas masih berlaku. Untuk mengetahui alasannya, kami akan memodifikasi contoh di atas dengan menambahkan lingkaran asing yang memungkinkan bug memenuhi batasan saat masih menempuh jalur yang sama:Ω(logN)
Lingkaran hijau dan biru adalah dua lingkaran dari contoh di atas. Titik potong dan b adalah sama dengan a dan b seperti pada contoh di atas. Lingkaran merah adalah lingkaran "asing" yang baru. Urutan sebelumnya berganti-ganti antara lingkaran biru dan hijau. Urutan baru akan menjadi urutan ini, tetapi dengan lingkaran merah ditambahkan sebelum setiap lingkaran dalam urutan lama: merah, biru, merah, hijau, merah, biru, merah, hijau, merah, biru, ...abab
Misalkan bug tersebut duduk di setelah biru ditempatkan. Lingkaran selanjutnya yang ditempatkan berwarna merah. Merah mengandung bug, sehingga bug tidak bergerak. Lingkaran berikutnya yang ditempatkan berwarna hijau. Sekarang bug bergerak ke b (yang merupakan titik terdekat di persimpangan lingkaran hijau dan merah). Dengan mengulangi ini, bug berjalan seperti sebelumnya.ab
Batas atas O(logN)
Saya hanya membuat sketsa buktinya.
Perbaiki urutan lingkaran apa pun. Kami akan berpendapat bahwa sebagai , jarak total yang ditempuh oleh bug dilangkah-langkah N pertamaadalah O ( log N ) . Asumsikan tanpa kehilangan keumuman bahwa lingkaran pertama memiliki jari-jari 1.N→∞NO(logN)
Memperbaiki sewenang-wenang besar . Biarkan p pada titik mana pun di persimpangan lingkaran N pertama . Perhatikan bahwa karena cara bug bergerak, pada setiap langkah bug bergerak semakin dekat ke hal .NpNp
Pertama, pertimbangkan langkah-langkah di mana rasio berikut setidaknya :
pengurangan jarak ke p1/logN
Total jarak yang ditempuh dalam langkah-langkah tersebut adalahO(logN), karena total jarak yang ditempuh dalam langkah-langkah tersebut adalahO(logN)
the reduction in the distance to pthe distance traveled in the step.
O(logN)O(logN) dikali jarak awal ke
. Jadi kita hanya perlu terikat total jarak yang ditempuh dalam langkah-langkah lain --- mereka di mana rasio yang paling
1 / log N .
p1/logN
Pertama, kami berpendapat sesuatu yang sedikit lebih lemah: bahwa jarak total yang ditempuh dalam langkah-langkah tersebut
sebelum jari-jari lingkaran berkurang menjadi 1/2 atau kurang adalah . (Kami tunjukkan nanti ini sudah cukup untuk memberi batas.)O(logN)
Pertimbangkan langkah seperti itu. Biarkan dan b , masing-masing, menunjukkan lokasi bug sebelum dan sesudah langkah. Biarkan o menunjukkan pusat lingkaran saat ini. Biarkan b ′ menunjukkan titik pada ray → p b sedemikian rupa sehingga | p a | = | p b | :abob′pb→|pa|=|pb|
Pertimbangkan segitiga-segitiga berikut:
- △opb
- △pba
- △abb′
Dengan argumen geometris yang mirip dengan yang ada di batas bawah, untuk beberapa , masing-masing segitiga ini memiliki dua kaki panjang dan satu kaki pendek, dan rasio (untuk setiap segitiga) dari panjang kaki pendek dengan panjang kaki panjang adalah Θ ( ϵ ) :
| b b ′ |ϵΘ(ϵ)
|bb′||ab|=Θ(|ab||pa|)=Θ(|pa||bo|)=Θ(ϵ).
Persamaan ini dan asumsi bahwa , Yang merupakan jari-jari lingkaran, dalam [ 1 / 2 , 1 ] menyiratkan bahwa | a b | = Θ ( | p a | 2 / | b o | ) = Θ ( | p a | 2 ) , dan kemudian itu | b b ′|bo|[1/2,1]|ab|=Θ(|pa|2/|bo|)=Θ(|pa|2) .|bb′|=Θ(|ab||pa|/|bo|)=Θ(|pa|3)
Sekarang kita fokus pada jarak bug ke . Sebut saja d sebelum langkah, dan d ′ setelah langkah. (Catatan d = | p a | , d ′ = | p b | , dan d - d ′ =pdd′d=|pa|d′=|pb| .)d−d′=|bb′|
Pada langkah ini, jarak ini dikurangi dengan | b b ′ | , yang dengan pengamatan di atas adalah Ω ( d 3 ) .d|bb′|Ω(d3)
Dengan demikian, jumlah langkah tambahan yang diperlukan untuk mengurangi jarak dengan faktor 2 (paling banyak ) adalah O ( 1 / d 2 ) . Mengubah variabel, jika d = 1 / 2 k , jumlah langkah tambahan yang diperlukan untuk membawa jarak di bawah
1 / 2 k + 1 adalah O ( 4 k ) . Karena jumlahnya adalah geometris, jumlah langkah yang diperlukan untuk membawa jarak di bawah 1 / 2 k adalah O (d/2O(1/d2)d=1/2k1/2k+1O(4k)1/2kadalah O ( 1 / √O(1/4k). Mengubah variabel lagi, setelah langkah, jarak ke pnp.O(1/n−−√)
Akhirnya, mengingat persamaan yang ditampilkan beberapa paragraf ke atas, pada langkah ke- , jarak yang ditempuh bug, yaitu | a b | , adalah O ( ( jarak saat ini ke p ) 2 ) = O ( 1 / n ) . Dengan demikian, total jarak yang ditempuh dalam pertama N langkah-langkah seperti saat jari-jari lingkaran dalam [ 1 / 2 , 1 ]
adalah paling
N Σ n ) = O (n|ab|O((the current distance to p)2)=O(1/n)N[1/2,1]
∑n=1NO(1/n)=O(logN).
Dengan scaling, kami menyimpulkan bahwa, untuk setiap , total jarak yang ditempuh sedangkan jari-jari lingkaran adalah dalam kisaran [ 1 / 2 k , 1 / 2 k + 1 ]
adalah O ( log ( N ) / 2 k ) . Menjumlahkan lebih dari k , jarak total yang ditempuh adalah O ( log N ) . QEDk[1/2k,1/2k+1]O(log(N)/2k)kO(logN)