Pantautogramma che?
25 Agosto 2006 by Voodoobytesman
In questa data accadde... Vedi su: BBC o su :
Wikipedia
Allora, dicevamo, un programma che generasse una frase autoreferenziale omeostatica logicamente esatta (detta erroneamente pantautogramma, essendo un tautogramma una frase in cui tutte le parole iniziano con la stessa lettera. Comunque una frase sul tipo della seguente (numeri non esatti nell'esempio): "Questa frase contiene dodici a, sette b, undici c, dieci d, venti e, quattro f, …"
Capite bene che nel momento in cui scrivo "dodici a" mi aumentano le d (2), le i (2), le o (1), le c (1) e dunque debbo ricalcolare tutto. Questo per ogni lettera…
Scopo del concorso era quello di scrivere il programma che riuscisse più velocemente a trovare l'equilibrio, l'omeostasi. Passai nottate a programmare in PASCAL, il mio primo linguaggio, ostico quanto pochi, ma dotato di una sua intima bellezza geroglifica o da protofantascienza.
Quando considerai di aver finito, lo lasciai girare su un PC 386 con 20 mega di HardDisk e 512 Kb (leggi kilobytes di RAM, il top allora) per tre giorni, ma quello ancora continuava a scrivere (ne spiavo la verde luminescenza dal letto):
"Questa frase contiene diciannove a, otto b, sette c, dieci d, ventinove e, cinque f, … " "Questa frase contiene ventisette a, nove b, nove c, undici d, diciannove e, cinque f, … " "Questa frase contiene undici a, diciotto b, tredici c, nove d, venti e, otto f, … " "Questa frase contiene ventisette a, undici b, ventuno c, quattordici d, trentasette e, undici f, … "
Dunque mi stufai, spensi e non ci pensa (quasi) più. Quasi, perchè la sfida informatico-logica era bella e non mi dispiacerebbe riprendere il programma con linguaggi più moderni.
Chissà, un giorno… Intanto l'ho ritrovato e… funziona ancora! (in una finestra DOS ovviamente). Potete provarlo, non fa danni (ma dovrete premere ESC per uscire). (qualcuno lo ha fatto? ne conoscete l'esistenza? Scrivetemi)
Alla fine degli anni ‘80 la sfida fu proposta dalle pagine delle Scienze (era ancora Martin Gardner?). Con il fido QuickBasic siamo riusciti a risolverlo molto semplicemente e a implementare una versione generalista (nel senso: qualunque sia la premessa). Il siamo è un po’ presuntuoso in quanto la chiave di soluzione è merito in gran parte di Francesco Giunta. Se ritrovo il file ve lo invio.