Braille is een speciaal voor blinden ontwikkeld lees- en schrijfalfabet. Het werd ontwikkeld en geperfectioneerd door de Fransman Louis Braille1 (1809–1852) — die zelf op driejarige leeftijd blind was geworden — tot het in 1829 als bruikbare methode kon ingezet worden op het Parijse blindeninstituut waar hij verbleef. In 1854 werd het officieel als alfabet geaccepteerd.
Braille is een reliëfalfabet waarbij letters en andere aanduidingen door middel van puntjes in het papier gedrukt worden. Daardoor ontstaan kleine verhogingen die met de vingertoppen kunnen 'gelezen' worden. De zes puntjes die samen een brailleteken vormen, worden gerangschikt in een rooster van 2 bij 3 puntjes. Ze worden van linksboven naar linksonder genummerd als 1, 2 en 3, en van rechtsboven naar rechtsonder als 4, 5 en 6.
Omdat elk brailleteken altijd minstens één verhoogd puntje moet hebben, zijn er in totaal dus 63 mogelijke brailletekens.
⠀ | ⠁ (1) |
⠂ (2) |
⠃ (12) |
⠄ (3) |
⠅ (13) |
⠆ (23) |
⠇ (123) |
⠈ (4) |
⠉ (14) |
⠊ (24) |
⠋ (124) |
⠌ (34) |
⠍ (134) |
⠎ (234) |
⠏ (1234) |
⠐ (5) |
⠑ (15) |
⠒ (25) |
⠓ (125) |
⠔ (35) |
⠕ (135) |
⠖ (235) |
⠗ (1235) |
⠘ (45) |
⠙ (145) |
⠚ (245) |
⠛ (1245) |
⠜ (345) |
⠝ (1345) |
⠞ (2345) |
⠟ (12345) |
⠠ (6) |
⠡ (16) |
⠢ (26) |
⠣ (126) |
⠤ (36) |
⠥ (136) |
⠦ (236) |
⠧ (1236) |
⠨ (46) |
⠩ (146) |
⠪ (246) |
⠫ (1246) |
⠬ (346) |
⠭ (1346) |
⠮ (2346) |
⠯ (12346) |
⠰ (56) |
⠱ (156) |
⠲ (256) |
⠳ (1256) |
⠴ (356) |
⠵ (1356) |
⠶ (2356) |
⠷ (12356) |
⠸ (456) |
⠹ (1456) |
⠺ (2456) |
⠻ (12456) |
⠼ (3456) |
⠽ (13456) |
⠾ (23456) |
⠿ (123456) |
Elke regel van het tekstbestand braille.txt2 bestaat uit een patroon $$p \in \mathcal{P}$$, gevolgd door een spatie en een woord $$w \in \mathcal{W}$$. De verzameling $$\mathcal{P}$$ bevat alle mogelijke omschrijvingen in Braille. Een omschrijving in Braille bestaat uit een opeenvolging van brailletekens, die telkens van elkaar gescheiden worden door één enkele spatie. Een brailleteken wordt voorgesteld als een reeks van minstens één cijfer, waarbij elk van de cijfers 123456 hoogstens één keer voorkomt en de cijfers in stijgende volgorde staan. De verzameling $$\mathcal{W}$$ bevat alle woorden die enkel bestaan uit kleine letters. Gevraagd wordt:
Bepaal zo kort mogelijke reguliere expressies voor de volgende deelverzamelingen van $$\mathcal{P}$$:
$$\mathcal{P}_1 = \{\,p \in \mathcal{P}\,|\,p\ $$heeft een even aantal brailletekens$$\,\}$$
voorbeeld: | |
$$\mathcal{P}_2 = \{\,p \in \mathcal{P}\,|\,$$opeenvolgende brailletekens van $$p$$ hebben geen gemeenschappelijke puntjes$$\,\}$$
voorbeeld: | |
$$\mathcal{P}_3 = \{\,p \in \mathcal{P}\,|\,p\ $$heeft minstens acht brailletekens met een puntje in de linkerbovenhoek of de rechteronderhoek$$\,\}$$
voorbeeld: | |
$$\mathcal{P}_4 = \{\,p \in \mathcal{P}\,|\,$$het eerste en het laatste brailleteken van $$p$$ hebben ofwel enkel puntjes aan de linkerkant ofwel enkel aan de rechterkant$$\,\}$$
voorbeeld: | |
Geef telkens een Unix commando waarin de reguliere expressie gebruikt wordt door een commando uit de grep familie om enkel de regels van het tekstbestand naar stdout te schrijven waarvan het patroon $$p$$ behoort tot $$\mathcal{P}_i\ (i = 1, 2, 3, 4)$$.
Bepaal als volgt de woorden $$w_1\ w_2\ w_3\ w_4$$ van een geheime boodschap:
het woord $$w_1$$ staat op de unieke regel waarvan $$p$$ behoort tot $$\mathcal{P}_1 \cap \mathcal{P}_2$$
het woord $$w_2$$ staat op de unieke regel waarvan $$p$$ behoort tot $$ \mathcal{P}_2 \cap \mathcal{P}_3$$
het woord $$w_3$$ staat op de unieke regel waarvan $$p$$ behoort tot $$\mathcal{P}_3 \cap \mathcal{P}_4$$
het woord $$w_4$$ staat op de unieke regel waarvan $$p$$ behoort tot $$\mathcal{P}_4 \cap \mathcal{P}_1$$
Geef telkens een Unix commando waarin de reguliere expressies voor de verzamelingen $$\mathcal{P}_i\ (i = 1, 2, 3, 4)$$ gebruikt worden door commando's uit de grep familie om het woord $$w_j\ (j = 1, 2, 3, 4)$$ op te zoeken in het tekstbestand en uit te schrijven naar stdout. Hierbij is het niet toegelaten om het woord $$w_j$$ letterlijk uit te schrijven (bv. echo $$w_j$$).