Scrivi il programma più breve possibile (lunghezza misurata in byte) che soddisfi i seguenti requisiti:
- nessun input
- l'output è su stdout
- l'esecuzione alla fine termina
- il numero totale di byte di output supera il numero di Graham
Supponiamo che i programmi vengano eseguiti fino alla terminazione "normale" su un computer ideale 1 in grado di accedere a risorse illimitate e che i linguaggi di programmazione comuni vengano modificati, se necessario (senza cambiare la sintassi), per consentire ciò. A causa di questi presupposti, potremmo chiamarlo una sorta di esperimento di Gedankene.
Per iniziare, ecco un programma Ruby a 73 byte che calcola f ω + 1 (99) nella gerarchia in rapida crescita :
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 MODIFICA: Più precisamente, supponiamo di prendere un sistema esistente e di modificarlo solo per non avere limiti massimi sulle dimensioni di archiviazione (ma è sempre finito). I tempi di esecuzione delle istruzioni non dovrebbero essere modificati, ma si presume che la macchina sia ideale in quanto non avrà limiti superiori per la sua durata operativa.