Sumber pertanyaan ini berasal dari program sarjana yang saya ikuti, yang mencakup pengantar analisis algoritma. Ini bukan untuk pekerjaan rumah, melainkan pertanyaan yang diajukan di CLRS.
Anda memiliki mesin yang berjalan lambat MIPS, dan mesin cepat berjalan di MIPS. Anda juga memiliki dua algoritma dari kelas yang sama, tetapi kompleksitas waktu berjalan yang berbeda: satu algoritma "lambat" berjalan pada sedangkan algoritma "cepat" berjalan pada .
Anda menjalankan algoritma lambat pada mesin cepat, dan algoritma cepat pada mesin lambat. Apa nilai terbesar dari n sehingga mesin cepat yang menjalankan algoritma lambat mengalahkan mesin lambat yang menjalankan algoritma cepat?
Solusi saya sejauh ini:
Temukan himpunan semua sehingga mana adalah bilangan alami.
Ini adalah pekerjaan saya sejauh ini:
Satu-satunya solusi yang terlintas dalam pikiran sekarang adalah dengan plug-n-chug semua nilai sampai saya menemukan n pertama di mana
tidak lagi berlaku.
Jawaban:
Pertimbangkan ketidaksetaraan terakhir Anda:
Sekarang,Clogn dengan C=c2yc1x adalah fungsi cekung . Karena itu, ada paling banyak dua persimpangan, dan hanya satu di antaranya yang menarik untuk Anda; yaitu, selesaikan
dan cari tahu algoritma mana yang lebih cepat di interval mana dengan hanya menghitung nilai fungsi masing-masing di beberapa titik dalam interval masing-masing.
Memang benar bahwa menyelesaikan kesetaraan ini secara eksplisit sulit / tidak mungkin. Untuk beberapa perbaikanC , aljabar komputer memberi Anda ekspresi dalam fungsi yang terkenal; persimpangan (nyata) yang menarik ternyata berada di
jikaC≥ e ln2 , dengan Wk yang analisis lanjutan dari fungsi produk log . Fungsi ini tidak memiliki bentuk tertutup yang bagus, tetapi dapat dievaluasi secara numerik untuk diberikanC ; misalnya, Anda dapatkan≈ 116 , 74 untuk C= 17 .
sumber