Ketika Alan Turing menemukan komputer, dulu ada beberapa model untuk komputer yang diusulkan. Turing membuktikan bahwa beberapa (3) dari model-model ini dapat mensimulasikan satu sama lain DAN menghitung fungsi Ackermann, sedangkan model lain dapat mensimulasikan satu sama lain tetapi tidak fungsi Ackermann (sehingga mereka tidak dapat mensimulasikan 3). Oleh karena itu, 3 model ini (Turing Machine, von Neumann dan yang saya tidak tahu), dipilih sebagai arsitektur untuk komputer. Ini tidak berarti fungsi Ackermann adalah batas komputer, tapi saya kira itu sains yang sulit. Saya tidak mengetahui adanya fungsi komputasi yang tumbuh lebih cepat daripada fungsi Ackermann.
Sekarang, saya tidak berpikir ada masalah praktis yang cocok dengan pertanyaan Anda, tapi mungkin kita bisa membuat satu. Kita perlu memberi batasan pada input. Karena kami tidak dapat menggunakan O (n), kami tidak dapat memeriksa seluruh input. Bahkan, kita bahkan tidak dapat memeriksa panjang input karena itu akan menjadi O (log n). Jadi, pertama kita perlu parameter representasi panjang sisa input, misalnya c sehingga Ackermann (c) adalah panjang input. Karena ini juga tidak cocok, kami meminta sebagai nilai pertama dalam input kami parameter c, sehingga bb (c) adalah tentang panjang input, di mana bb adalah fungsi berang-berang yang sibuk. Fungsi ini tidak dapat dihitung tetapi pasti ada bb (c). Kemudian, algoritmenya seperti:
for (int i=0; i<c; i++) {
if (input[i] == null) {
return false;
}
}
return true;
Tujuan dari algoritma ini adalah untuk memeriksa bahwa jika c adalah kebalikan dari bb, jika kemudian panjang input lebih besar dari bb (c).
Jika ada fungsi yang dapat dihitung yang tumbuh lebih cepat dari fungsi Ackermann, saya pikir kita bisa menggunakannya terbalik untuk membuat algoritma yang menjawab pertanyaan Anda pada input apa pun.