Wat is er zo bijzonder aan deze 14 reeksen van woorden?
accost commit launch deeded adhere heckle silent versed ampere arrive angers theses chance ascent tester stored chaste ascend tinder seeded cohere heckle silent versed debase mucked refile stress demure riffle silent versed endure shelve riling nested forego recess gossip needed herein advice resins stones rebate locket career tested recast costar pirate esters remade astute surest rested
accost commit launch deeded ⟶ accolade communed stitched adhere heckle silent versed ⟶ adhesive hecklers relented ampere arrive angers theses ⟶ amaranth perigees reverses chance ascent tester stored ⟶ chastest ancestor centered chaste ascend tinder seeded ⟶ chastise ascended tendered cohere heckle silent versed ⟶ cohesive hecklers relented debase mucked refile stress ⟶ demurest backfire seedless demure riffle silent versed ⟶ derisive mufflers relented endure shelve riling nested ⟶ enshrine duellist revenged forego recess gossip needed ⟶ foregone recessed gossiped herein advice resins stones ⟶ headrest revision incenses rebate locket career tested ⟶ relocate backrest teetered recast costar pirate esters ⟶ recopies castrate starters remade astute surest rested ⟶ reassure maturest detested
Als we alle zesletterwoorden in elke reeks verdelen in drie letterparen, en daarna de corresponderende paren samenvoegen, dan krijgen we drie nieuwe achtletterwoorden.
ACcoST COmmIT LAunCH DEedED ⟶ ACCOLADE communed STITCHED
Merk op dat dit ook in de omgekeerde richting werkt, als we alle achtletterwoorden verdelen in vier letterparen, en daarna de corresponderende groepen samenvoegen.
ACcoLAde COmmUNed STitCHed ⟶ ACCOST commit LAUNCH deeded
Het herschikken werkt zolang we de $$m \in \mathbb{N}_0$$ woorden uit de reeks kunnen verdelen in $$n \in \mathbb{N}_0$$ groepen die elk bestaan uit evenveel letters, en de $$m$$ overeenkomstige groepen samenvoegen tot $$n$$ nieuwe woorden. Hieronder zie je bijvoorbeeld hoe $$m = 2$$ tienletterwoorden telkens verdeeld worden in $$n = 5$$ groepen van elk twee letters, die we kunnen herschikken tot $$n = 5$$ nieuwe vierletterwoorden.
CAlaMItoUS NEwsCAstER ⟶ CANE laws MICA tost USER INdiVIduAL CHalLEngES ⟶ INCH dial VILE dung ALES LOcoMOtiVE INveSTmeNT ⟶ LOIN cove MOST time VENT MAloDOroUS THreESomES ⟶ MATH lore DOES room USES REcuPEraTE INteSTinES ⟶ REIN cute PEST rain TEES
De woorden in de gegeven reeks hoeven zelfs niet allemaal even lang te zijn, zolang we elk woord maar kunnen verdelen in $$n \in \mathbb{N}_0$$ groepen die elk bestaan uit evenveel letters.
ABatTOir OUTmasTERing ⟶ ABOUT atmas TOTER iring ABbaCIes HORnedNESses ⟶ ABHOR baned CINES esses ABstRUse AFTereFFEcts ⟶ ABAFT stere RUFFE sects ACtiNIas HOOdedNESses ⟶ ACHOO tided NINES asses ACtiVEly REStreTCHing ⟶ ACRES titre VETCH lying AGlyCOne MASticATIons ⟶ AGMAS lytic COATI neons
Schrijf een functie verdelen waaraan twee argumenten moeten doorgegeven worden: i) een woord (str) en ii) het aantal (niet-overlappende) groepen $$n \in \mathbb{N}_0$$ (int) waarin dat woord moet verdeeld worden. De functie moet een lijst (list) teruggeven met de $$n$$ groepen (str) waarin het woord kan verdeeld worden. Hierbij moeten alle groepen uit evenveel letters bestaan.
Schrijf een functie herschikken waaraan twee argumenten moeten doorgegeven worden: i) een reeks (list of tuple) van $$m \in \mathbb{N}_0$$ woorden (str) en ii) het aantal (niet-overlappende) groepen $$n \in \mathbb{N}_0$$ (int) waarin die woorden moeten verdeeld worden. De functie moet een lijst (list) met de $$n$$ nieuwe woorden (str) teruggeven die we bekomen als we de $$m$$ gegeven woorden verdelen in $$n$$ groepen die elk uit evenveel letters bestaan, en daarna telkens de $$m$$ overeenkomstige groepen samenvoegen tot een nieuw woord.
Als het woord dat aan de functie verdelen wordt doorgegeven of minstens één van de woorden die aan de functie herschikken worden doorgegeven niet kunnen verdeeld worden in $$n$$ groepen die elk uit evenveel letters bestaan, dan moet AssertionError opgeworpen worden met de boodschap ongeldige verdeling.
>>> verdelen('accost', 3)
['ac', 'co', 'st']
>>> verdelen('COMMIT', 3)
['CO', 'MM', 'IT']
>>> verdelen('accolade', 4)
['ac', 'co', 'la', 'de']
>>> verdelen('COMMUNED', 4)
['CO', 'MM', 'UN', 'ED']
>>> verdelen('programming', 5)
Traceback (most recent call last):
AssertionError: ongeldige verdeling
>>> herschikken(['ACcoST', 'COmmIT', 'LAunCH', 'DEedED'], 3)
['ACCOLADE', 'communed', 'STITCHED']
>>> herschikken(('ACCOLADE', 'communed', 'STITCHED'), 4)
['ACcoST', 'COmmIT', 'LAunCH', 'DEedED']
>>> herschikken('cane laws mica tost user'.split(), 2)
['calamitous', 'newscaster']
>>> herschikken('INDIVIDUAL CHALLENGES'.split(), 5)
['INCH', 'DIAL', 'VILE', 'DUNG', 'ALES']
>>> herschikken('programming computer games'.split(), 5)
Traceback (most recent call last):
AssertionError: ongeldige verdeling