De idee om een zin — of een langer stuk poëzie of proza — te schrijven waarvan de lengtes van de opeenvolgende woorden de cijfers van het getal $$\pi$$ (=3.14159265358979…) vormen, is ontstaan ergens begin 1900. Eén van de vroegste en bekendste voorbeelden is de volgende zin, die vermoedelijk werd opgesteld door de Engelse fysicus Sir James Jeans:

How I need a drink, alcoholic in nature, after the heavy lectures involving quantum mechanics!

Het eerste woord van de zin bestaat uit drie letters, het volgende woord uit één letter, het volgende woord uit vier letters, enzoverder, en samen vormen ze de eerste vijftien cijfers van het getal $$\pi$$. Een iets langer voorbeeld is het gedicht met ABAB rijmschema uit het boek Playing With Words uit 1960 van de hand van Joseph Shipley.

But a time I spent wandering in bloomy night;
Yon tower, tinkling chimewise, loftily opportune.
Out, up, and together came sudden to Sunday rite,
The one solemnly off to correct plenilune.

Het is geen toeval dat dit gedicht (net zoals elk ander geheugensteuntje voor $$\pi$$ dat dateert van voor 1990) stopt ergens kort voor het 33e cijfer van $$\pi$$, omdat dit cijfer van $$\pi$$ gelijk is aan nul. Hoe moeten nullen immers voorgesteld worden in dit schema? Sommige auteurs hebben leestekens of tekstopmaak gebruikt om nullen voor te stellen — bijvoorbeeld door het einde van een zin te gebruiken om nul voor te stellen, of bepaalde leestekens zoals komma's of puntkomma's te gebruiken als nullen. Deze schema's zijn echter behoorlijk kunstmatig, en niet zo handig (als geheugensteuntje) als schema's die enkel beroep doen op het aantal letters van een woord. We weten niet wie, maar uiteindelijk dacht iemand er aan om tienletterwoorden te gebruiken om nullen voor te stellen, wat een vrij goede oplossing lijkt. Met deze methode is het niet enkel handig om één enkele nul voor te stellen, maar ook reeksen nullen (zoals 00 of 000) kunnen makkelijk voorgesteld worden. Dit schema wordt eenvoudig Pilish genoemd, waarbij de term Pilish verwijst naar "English that follows the successive digits of pi". Kort samengevat stelt in eenvoudig Pilish elk woord van $$n$$ letters

  1. het cijfer $$n$$ voor als $$n < 10$$

  2. het cijfer $$0$$ voor als $$n = 10$$

Deze regel werkt zeer goed voor honderden cijfers, en laat toe om lange teksten op te stellen die het getal $$\pi$$ voorstellen zonder dat dit op het eerste gezicht opvalt voor de lezer. Maar uiteindelijk duikt er een probleem op dat kan opgelost worden door gebruik te maken van standaard Pilish. Bij eenvoudig Pilish wordt het immers problematisch om lange reeksen van kleine cijfers die niet nul zijn (zoals 1121 of 1111211) op een natuurlijke manier voor te stellen, omdat lange reeksen van éénletterwoorden ongebruikelijk zijn in de meeste talen. Een tweede probleem met eenvoudig Pilish is dat er geen woorden toegelaten zijn die bestaan uit meer dan tien letters, wat een probleem vormt als men iets wil neerschrijven over gangbare thema's zoals objectivisme of cheeseburgers.

In standaard Pilish doen de voorgaande twee problemen zich niet voor. In dit schema stelt elk woord van $$n$$ letters

  1. het cijfer $$n$$ voor als $$n < 10$$

  2. het cijfer $$0$$ voor als $$n = 10$$

  3. de opeenvolgende cijfers van $$n$$ voor als $$n > 10$$
    (een twaalfletterwoord stelt bijvoorbeeld de cijfers 1 en 2 voor)

Hierbij is regel 3 eigenlijk geen speciaal geval, maar is het regel 2 die de uitzondering vormt als we het algoritme op de volgende manier omschrijven: om de cijfers van het getal $$\pi$$ te bepalen aan de hand van een tekst die geschreven is in standaard Pilish, schrijf je het aantal letters van het woord naast elk woord (behalve bij tienletterwoorden waar een nul wordt naast geschreven). Daarna lees je alle cijfers in volgorde van begin tot eind om zo de waarde van $$\pi$$ te bekomen. Merk op dat deze omschrijving zowel werkt voor teksten in eenvoudig Pilish en standaard Pilish.

Om helemaal eenduidig te zijn, moeten we nog vastleggen hoe leestekens geïnterpreteerd worden in een tekst in Pilish — of meer algemeen, hoe elk symbool moet behandeld worden dat geen letter is (A-Z of a-z). De regels die we zullen gebruiken zijn de volgende:

  1. Als een woord één of meer aanhalingstekens bevat, dan worden deze gewoon genegeerd. Het tekstfragment couldn't wordt daardoor behandeld alsof er couldnt stond, wat een woord van zeven letters oplevert.

  2. Elk karakter dat geen letter of aanhalingsteken is, wordt behandeld als een scheidingteken. Dat komt op hetzelfde neer als zeggen dat dergelijke karakters op dezelfde manier behandeld worden als witruimte.

Een belangrijk gevolg van de tweede regel is dat woorden met een koppelteken — zoals fun-filled — worden behandeld als twee afzonderlijke woorden, waardoor ze minstens twee cijfers genereren (in dit geval 3 en 6). Op basis van deze regels genereren leestekens nooit cijfers als de tekst naar cijfers wordt omgezet. Veronderstel dat we bijvoorbeeld fun and games willen schrijven, maar dat de volgende twee cijfers van $$\pi$$ 3 en 5 zijn. Dan kunnen we het gewenste resultaat bekomen door fun & games te schrijven, omdat de ampersand genegeerd wordt bij het omzetten van tekst naar cijfers.

Invoer

De invoer bestaat uit een aantal regels, afgesloten met een regel die enkel drie punten bevat. Geen enkele andere regel bevat enkel drie punten.

Uitvoer

Schrijf voor elke regel uit de invoer (behalve de laatste regel die enkel drie punten bevat) de omzetting van de tekst op de regel naar een reeks cijfers uit op een afzonderlijke regel, als de tekst geïnterpreteerd wordt als Pilish.

Voorbeeld

Invoer:

But a time I spent wandering in bloomy night;
Yon tower, tinkling chimewise, loftily opportune.
Out, up, and together came sudden to Sunday rite,
The one solemnly off to correct plenilune.
...

Uitvoer:

314159265
358979
323846264
3383279