Untuk memecahkan Masalah Pemutusan Anda diberikan deskripsi suatu program, dan harus menentukan apakah program tersebut akan selesai atau tidak. Anda tidak pernah dapat melakukan ini untuk semua program. Namun untuk program-program seperti (dalam brainf *** ):
>
Ini jelas akan berhenti, dan untuk program-program seperti:
+[]
Jelas tidak akan. Tantangan Anda adalah untuk "memecahkan" masalah penghentian sebanyak mungkin program. Program-program ini tidak akan menggunakan .
atau ,
, dan tidak akan memiliki input atau output. Anda akan diberikan deskripsi program dan harus menampilkan "Berhenti", "Tidak berhenti", atau "Tidak Diketahui". Ketika program Anda menghasilkan "Hentikan" atau "Tidak berhenti", Anda telah menyelesaikan program input. Berikut ini beberapa persyaratan.
- Itu harus menyelesaikan setidaknya sejumlah program yang tak terbatas.
- Untuk setiap program yang dipecahkannya, solusinya harus benar.
- Anda hanya dapat menampilkan 1 dari 3 pilihan di atas.
- Anda dapat berasumsi bahwa komputer yang berjalan memiliki waktu dan memori yang tidak terbatas, sehingga XKCD 1266 tidak akan berfungsi (rekaman itu tidak terbatas).
- Tidak ada sumber daya eksternal.
- Anda mungkin tidak menggunakan bahasa pemrograman yang benar-benar dapat memecahkan masalah penghentian .
Anda mungkin memiliki program sampingan non-kode-golf yang mengambil string yang merupakan program, dan menghasilkan semacam pohon sintaksis abstrak jika Anda mau. Catatan, itu tidak benar-benar mencetak skor per se, tetapi bagaimana menentukan apakah satu program mengalahkan yang lain.
- Jika program A memecahkan jumlah tak terbatas dari program yang B tidak, tetapi B hanya memecahkan hingga atau tidak ada program yang diselesaikan A, A secara otomatis menang.
- Kalau tidak, program dengan karakter paling sedikit akan menang. Jangan hitung spasi atau komentar, jadi jangan mengaburkan kode Anda.
Kiat: Pengatur waktu tidak akan berfungsi. Anda lihat, untuk setiap waktu T dan mesin yang diberikan, ada N, sehingga semua program lebih lama dari yang harus mengambil lebih dari waktu T. Ini berarti bahwa penghitung waktu hanya dapat mencapai solusi dari sejumlah program terbatas, dan, seperti yang Anda lihat di atas, menyelesaikan sejumlah program terbatas tidak membantu.
>
, abaikan saja." Maka hal Anda akan menjadi berlebihan.
>
s setelah program berakhir, kemudian cari program P di mana S' menjawab "Tidak Dikenal", lalu buat solusi baru yang menjawab dengan benar pada P dengan >
ditambahkan dan memberikan jawaban S sebaliknya. Karena S 'mengabaikan >
maka P dengan jumlah yang >
ditambahkan juga tidak akan diselesaikan oleh S'.
>
s ditambahkan ke akhir (karena ini menghentikan iff P berhenti), dan menampilkan jawaban S pada semua input lainnya. Solusi baru ini memecahkan lebih banyak masalah daripada S.