Drop links or images here to add them to the editor.

Welk woord komt op de plaats van het vraagteken om deze woordenreeks af te werken?

Knalpot, Tegengas, Allebei, Wegrenner, Gewiebel, Lasagne, Getto, ?

De volledige woordenreeks vormt een palindroom: je krijgt dezelfde reeks letters als je de letters van de woorden van links naar rechts of van rechts naar links leest. Het ontbrekende woord is dus Plank:

Knalpot, Tegengas, Allebei, Wegrenner, Gewiebel, Lasagne, Getto, Plank

Opgave

Bij dit soort raadsel moet je op het einde van een gegeven woordenreeks één woord aanvullen zodat de volledige woordenreeks een palindroom vormt. We hebben ons laten inspireren op dergelijke woordreeksen, al zijn we er soms wel en soms niet in geslaagd om ze palindromisch te maken.

Elke regel van het tekstbestand palindromes.txt bestaat uit een patroon $$p \in \mathcal{P}$$. De verzameling $$\mathcal{P}$$ bestaat uit alle mogelijke reeksen van één of meer woorden die telkens van elkaar gescheiden worden door een komma (,) en een spatie. Woorden worden telkens geschreven als een hoofdletter gevolgd door kleine letters. Gevraagd wordt:

  1. Bepaal zo kort mogelijke reguliere expressies voor de volgende deelverzamelingen van $$\mathcal{P}$$, waar bij het vergelijken van letters geen onderscheid gemaakt wordt tussen hoofdletters en kleine letters:

    • $$\mathcal{P}_1 = \{\,p \in \mathcal{P}\,|\,$$geen enkel woord van $$p$$ eindigt met de eerste letter van het volgende woord$$\,\}$$

      voorbeeld: Exam, Rocks, Uteruses, Abase, Sure, Tusk, Corm, Axe $$\in \mathcal{P}_1$$
        Polka, Epic, Olden, Nod, Donned, Loci, Peak, Lop $$\not \in \mathcal{P}_1$$
    • $$\mathcal{P}_2 = \{\,p \in \mathcal{P}\,|\,$$er is een medeklinker$$^{(*)}$$ die minstens acht keer voorkomt in de woorden van $$p\,\}$$

      (*) de letter y wordt ook als een medeklinker beschouwd

      voorbeeld: Password, Nibs, Loots, Stools, Bind, Rows, Sap $$\in \mathcal{P}_2$$
        Scraper, Pas, Ivory, Tyro, Visa, Prep, Arcs $$\not \in \mathcal{P}_2$$
    • $$\mathcal{P}_3 = \{\,p \in \mathcal{P}\,|\,$$er zijn minstens twee woorden van $$p$$ die hun eerste en hun laatste letter delen$$\,\}$$

      voorbeeld: Timetable, Beret, Amir, Primate, Rebel, Bat, Emit $$\in \mathcal{P}_3$$
        Swamp, Ace, Kowtow, Wot, Woke, Cap, Maws $$\not \in \mathcal{P}_3$$
    • $$\mathcal{P}_4 = \{\,p \in \mathcal{P}\,|\,$$er zijn minstens drie woorden van $$p$$ met een dubbele letter$$^{(*)}\,\}$$

      (*) een dubbele letter is een letter die twee keer na elkaar herhaald wordt

      voorbeeld: Gutter, Rutting, Nomad, Among, Nit, Turret, Tug $$\in \mathcal{P}_4$$
        Matron, Odometer, Cesspools, Sloops, Secret, Emo, Donor, Tam $$\not \in \mathcal{P}_4$$

    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)$$.

  2. Bepaal als volgt de woorden $$w_1\ w_2\ w_3\ w_4$$ van een geheime boodschap:

    • het woord $$w_1$$ is het eerste woord op de unieke regel waarvan $$p$$ behoort tot $$\mathcal{P}_1 \cap \mathcal{P}_2$$

    • het woord $$w_2$$ is het tweede woord op de unieke regel waarvan $$p$$ behoort tot $$ \mathcal{P}_2 \cap \mathcal{P}_3$$

    • het woord $$w_3$$ is het derde woord op de unieke regel waarvan $$p$$ behoort tot $$\mathcal{P}_3  \cap \mathcal{P}_4$$

    • het woord $$w_4$$ is het vierde woord 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$$).