Untuk setiap fungsi yang dapat dihitung apakah ada masalah yang dapat diselesaikan paling baik dalam waktu atau adakah fungsi yang dapat dihitung sehingga setiap masalah yang dapat diselesaikan dalam dapat juga dipecahkan dalam waktu ?
Pertanyaan ini muncul di kepala saya kemarin. Saya sudah memikirkannya sedikit sekarang, tetapi tidak bisa mengetahuinya. Saya tidak benar-benar tahu bagaimana saya google untuk ini, jadi saya bertanya di sini. Inilah yang saya buat:
Pikiran pertama saya adalah bahwa jawabannya adalah ya: Untuk setiap fungsi dihitung masalah "Output titik" (atau membuat string dengan titik atau apa pun) dapat jelas tidak diselesaikan dalam waktu. Jadi kita hanya perlu menunjukkan bahwa itu dapat diselesaikan dalam waktu . Tidak masalah, ambil saja kode pseudo berikut:
x = f(n)
for i from 1 to x:
output(".")
Jelas bahwa algoritma memecahkan masalah yang dinyatakan. Dan itu runtime jelas di , jadi masalah terpecahkan. Itu mudah, bukan? Kecuali tidak, itu bukan karena Anda harus mempertimbangkan biaya baris pertama. Algoritma runtime di atas hanya dalam jika waktu yang dibutuhkan untuk menghitung adalah dalam . Jelas itu tidak benar untuk semua fungsi 1 .Θ ( f ( n ) ) f ( n ) O ( f ( n ) )
Jadi pendekatan ini tidak membuat saya ke mana pun. Saya akan berterima kasih kepada siapa pun yang menunjukkan saya ke arah yang benar untuk mengetahui hal ini dengan benar.
1 Pertimbangkan misalnya fungsi . Jelas , tetapi tidak ada algoritma yang menghitung dalam waktu. O ( p ( n ) ) = O ( 1 ) p O ( 1 )