Autogrammen (Grieks: αὐτός = zelf, γράμμα = letter) zijn zinnen die zichzelf beschrijven, in die zin dat ze een inventaris maken van hun eigen letters. Daarom worden ze ook wel eens zelfbeschrijvende of zelfdocumenterende zinnen genoemd. Ze werden uitgevonden door de Britse ingenieur Lee Sallows, die er ook de term autogram voor bedacht. Essentieel bij het opstellen van autogrammen is het gebruik van voluit geschreven hoofdtelwoorden zoals "een", "twee", … bij het neerschrijven van de letterfrequenties. Bij het tellen worden vaak alleen maar de letters in rekening gebracht terwijl de leestekens genegeerd worden, zoals in dit voorbeeld:
This sentence employs two a's, two c's, two d's, twenty-eight e's, five f's, three g's, eight h's, eleven i's, three l's, two m's, thirteen n's, nine o's, two p's, five r's, twenty-five s's, twenty-three t's, six v's, ten w's, two x's, five y's, and one z.
Het eerste gepubliceerde autogram werd samengesteld door Sallows in 1982 en verscheen in het tijdschrift Scientific American in de column Metamagical Themas van Douglas Hofstadter.
Only the fool would take trouble to verify that his sentence was composed of ten a's, three b's, four c's, four d's, forty-six e's, sixteen f's, four g's, thirteen h's, fifteen i's, two k's, nine l's, four m's, twenty-five n's, twenty-four o's, five p's, sixteen r's, forty-one s's, thirty-seven t's, ten u's, eight v's, eight w's, four x's, eleven y's, twenty-seven commas, twenty-three apostrophes, seven hyphens and, last but not least, a single !
Het is ontzettend moeilijk om een autogram te maken, omdat de zin die moet beschreven worden onbekend is totdat de omschrijving zelf voltooid is. Daarom is het des te verwonderlijker dat de Nederlander Rudy Kousbroek erin slaagde om er een perfecte vertaling van te maken. Zowaar een hemelse vertaling van Lee Sallow's meesterwerk.
Alleen 'n ezel gelooft dat ik de moeite heb genomen na te tellen dat deze zin bestaat uit zestien a's, drie b's, vier c's, vijftien d's, negenenzeventig e's, zes f's, veertien g's, zes h's, vierendertig i's, vier j's, zeven k's, acht l's, vijf m's, achtendertig n's, zes o's, vier p's, een q, achttien r's, vijfendertig s's, drieëndertig t's, drie u's, dertien v's, drie w's, een x, een y, tien z's, plus dertig komma's, vierentwintig afkappingstekens, twee aanhalingstekens en, niet te vergeten, een enkel !
Een speciaal soort autogram dat bijzondere aandacht heeft gekregen is het autogrammatisch pangram: een zelfbeschrijvende zin waarin elke letter van het alfabet minstens één keer voorkomt. Sommige letters komen niet voor in de bovenstaande drie autogrammen, waardoor het geen pangrammen zijn. Het eerste autogrammatisch pangram was van de hand van Rudy Kousbroek en verscheen in het NRC Handelsblad.
Dit pangram bevat vijf a's, twee b's, twee c's, drie d's, zesenveertig e's, vijf f's, vier g's, twee h's, vijftien i's, vier j's, een k, twee l's, twee m's, zeventien n's, een o, twee p's, een q, zeven r's, vierentwintig s's, zestien t's, een u, elf v's, acht w's, een x, een y, en zes z's.
Sallows, die in Nederland woont, werd door Kousbroek uitgedaagd om een zelfbeschrijvende Engelse vertaling van dit pangram te maken — een schier onmogelijke taak. Sallows deed beroep op zijn ingenieursachtergrond om speciaal voor deze uitdaging een computer te ontwikkelen, die hij de naam Pangram Machine gaf.
Uiteindelijk slaagde de Pangram Machine in zijn opzet, en produceerde onderstaand voorbeeld dat in oktober 1984 gepubliceerd werd in Scientific American.
This pangram contains four a's, one b, two c's, one d, thirty e's, six f's, five g's, seven h's, eleven i's, one j, one k, two l's, two m's, eighteen n's, fifteen o's, two p's, one q, five r's, twenty-seven s's, eighteen t's, two u's, seven v's, eight w's, two x's, three y's, & one z.
Miguel Lerma van de Universidad Politecnica van Madrid slaagde er ook in om een autogrammatisch pangram te construeren in het Spaans:
Esta frase contiene exactamente doscientas treinta y cinco letras: veinte a's, una b, dieciseis c's, trece d's, treinta e's, dos f's, una g, una h, diecinueve i's, una j, una k, dos l's, dos m's, veintidos n's, catorce o's, una p, una q, diez r's, treinta y tres s's, diecinueve t's, doce u's, cinco v's, una w, dos x's, cuatro y's, y dos z's.
Schrijf een functie letterfrequenties waaraan een string (str) moet doorgegeven worden. De functie moet een dictionary (dict) teruggeven die elke letter (str) die voorkomt in de gegeven zin afbeeldt op het aantal voorkomens (int) van die letter in de zin. Hierbij mag de functie bij het tellen van de letters geen onderscheid maken tussen hoofdletters en kleine letters, en moeten alle sleutels van de dictionary kleine letters zijn. Alle karakters uit de gegeven zin die geen letter zijn, moeten genegeerd worden bij het opstellen van de dictionary.
Schrijf een functie letterposities waaraan een string (str) moet doorgegeven worden. De functie moet een dictionary (dict) teruggeven die elke letter (str) die voorkomt in de gegeven zin afbeeldt op de verzameling (set) van alle posities (int) waar die letter voorkomt in de zin. Hierbij mag de functie geen onderscheid maken tussen hoofdletters en kleine letters, en moeten alle sleutels van de dictionary kleine letters zijn. Bij het bepalen van de posities van de letters moeten alle karakters van de zin in rekening gebracht worden. Hierbij staat het eerste karakter van de zin op positie 0, het tweede karakter op positie 1, enzoverder.
>>> frequentie = letterfrequenties("fifteen e's, seven f's, four g's, six h's, eight i's, four n's, five o's, six r's, eighteen s's, eight t's, four u's, three v's, two w's, three x's")
>>> frequentie['e']
15
>>> frequentie['f']
7
>>> frequentie['g']
4
>>> frequentie = letterfrequenties("sixteen e's, five f's, three g's, six h's, nine i's, five n's, four o's, six r's, eighteen s's, eight t's, three u's, three v's, two w's, four x's")
>>> frequentie['e']
16
>>> frequentie['f']
5
>>> frequentie['g']
3
>>> posities = letterposities("fifteen e's, seven f's, four g's, six h's, eight i's, four n's, five o's, six r's, eighteen s's, eight t's, four u's, three v's, two w's, three x's")
>>> posities['e']
{4, 5, 8, 14, 16, 43, 67, 83, 88, 89, 97, 121, 122, 141, 142}
>>> posities['f']
{0, 2, 19, 24, 54, 64, 108}
>>> posities['g']
{29, 45, 85, 99}
>>> posities = letterposities("sixteen e's, five f's, three g's, six h's, nine i's, five n's, four o's, six r's, eighteen s's, eight t's, three u's, three v's, two w's, four x's")
>>> posities['e']
{4, 5, 8, 16, 26, 27, 46, 56, 82, 87, 88, 96, 110, 111, 121, 122}
>>> posities['f']
{13, 18, 53, 63, 138}
>>> posities['g']
{29, 84, 98}
Een paar jaar geleden begon Lee Sallows zich af te vragen of het ook mogelijk zou zijn om een zin in elkaar te knutselen die het aantal voorkomens van de letters omschrijft in percentages. Dit is nog moeilijker omdat de percentages niet altijd natuurlijke getallen zijn. Terwijl hij dit idee aan het uitwerken was, sprak hij er ook met enkele anderen over. Onder andere met de Britse computerwetenschapper Chris Patuzzo. Een paar dagen later stuurde Patuzzo hem het volgende door:
This sentence is dedicated to Lee Sallows and to within one decimal place four point five percent of the letters in this sentence are a's, zero point one percent are b's, four point three percent are c's, zero point nine percent are d's, twenty point one percent are e's, one point five percent are f's, zero point four percent are g's, one point five percent are h's, six point eight percent are i's, zero point one percent are j's, zero point one percent are k's, one point one percent are l's, zero point three percent are m's, twelve point one percent are n's, eight point one percent are o's, seven point three percent are p's, zero point one percent are q's, nine point nine percent are r's, five point six percent are s's, nine point nine percent are t's, zero point seven percent are u's, one point four percent are v's, zero point seven percent are w's, zero point five percent are x's, zero point three percent are y's and one point six percent are z's.
Meer details vind je hier1. De volgende uitdaging is een versie waarvan de percentages nauwkeurig zijn tot op twee cijfers na de komma — Patuzzo is daar momenteel aan aan het werken.
Sallows L (1985). In Quest of a Pangram. Abacus 2(3), 22-40. 2
Hofstadter DR (1996). Metamagical Themas: Questing for the Essence of Mind and Pattern. Basic Books, 390-392. ISBN 978-0-465-04566-2. 3
Letaw JR (1985). Pangrams: A Nondeterministic Approach. Abacus 2(3), 42-47.
Kousbroek R (1983). Welke vraag heeft vierendertig letters? NRC Handelsblad, Cultureel Supplement 640, 11 februari 1983, p.3.
Kousbroek R (1983). Instructies voor het demonteren van een bom. NRC Handelsblad, Cultureel Supplement 644, 11 maart 1983, p.9.
Kousbroek R (1984). De Logologische Ruimte. Meulenhof, 135-153. 4
Dewdney AK (1984). Computer Recreations. Scientific American, 18-22. 5