Напишите кратчайшую возможную программу (длина измеряется в байтах), удовлетворяющую следующим требованиям:
- нет ввода
- вывод на стандартный вывод
- исполнение в конечном итоге прекращается
- общее количество выходных байтов превышает число Грэма
Предположим, что программы работают до «нормального» завершения на идеальном компьютере 1, способном получить доступ к неограниченным ресурсам, и что общие языки программирования модифицируются, если необходимо (без изменения синтаксиса), чтобы разрешить это. Из-за этих предположений мы могли бы назвать это своего рода Gedankenexperiment.
Для начала, вот 73-байтовая программа Ruby, которая вычисляет f ω + 1 (99) в быстро растущей иерархии :
f=proc{|k,n|k>0?n.times{n=f[k-1,n]}:n+=1;n};n=99;n.times{n=f[n,n]};puts n
1 РЕДАКТИРОВАТЬ: Точнее, предположим, что мы берем существующую систему и модифицируем ее только для того, чтобы не было верхнего предела размера хранилища (но он всегда конечен). Время выполнения инструкций не должно изменяться, но предполагается, что машина идеальна в том смысле, что у нее не будет верхнего предела срока ее службы.