Als we elke letter een waarde geven overeenkomsting zijn positie in het alfabet, dan kunnen we de waarde van een woord berekenen als de som van de waarden van de letters in het woord. Daarmee kunnen we op zoek gaan naar woordsommen. Een woordsom is een reeks van (meestal twee) woorden, waarvan de som van de woordwaarden gelijk is aan de woordwaarde van een woord dat ermee kan geassocieerd worden.
KING + CHAIR = THRONE
Controleren of twee woorden een woordsom vormen met een derde woord is heel eenvoudig. Het is echter veel moeilijker om goede woordsommen te vinden. Het zijn immers voornamelijk de associaties die de kwaliteit van de woordsommen bepalen. Hier zijn er alvast nog een paar, waarbij we na elk woord tussen ronde haakjes ook telkens zijn woordwaarde vermelden.
term 1 | term 2 | resultaat |
---|---|---|
ARM (32) | BEND (25) | ELBOW (57) |
WHITE (65) | HOUSE (68) | GOVERNMENT (133) |
MONA (43) | LISA (41) | LEONARDO (84) |
PETER (64) | PAN (31) | NEVERLAND (95) |
FAMILY (66) | TREE (48) | ANCESTORS (114) |
RED (27) | BULL (47) | COCKTAIL (74) |
EGG (19) | PLANT (63) | AUBERGINE (82) |
ANT (35) | LION (50) | DOODLEBUG (85) |
VISUAL (84) | BASIC (34) | MICROSOFT (118) |
BLACK (29) | JACK (25) | VEGAS (54) |
Op dezelfde manier kunnen we ook associaties maken met namen van bekende personen.
term 1 | term 2 | resultaat |
---|---|---|
JOHN (47) | CLEESE (49) | HUMOUR (96) |
TOM (48) | HANKS (53) | FORREST (101) |
BOB (19) | MARLEY (74) | RASTAFARI (93) |
KURT (70) | COBAIN (44) | NOVOSELIC (114) |
NELSON (79) | MANDELA (50) | HUMANITARIAN (129) |
EMMA (32) | WATSON (92) | VOLDEMORT (124) |
JAMES (48) | BOND (35) | DANIEL CRAIG (83) |
GEORGE (57) | LUCAS (56) | JAR JAR BINKS (113) |
STEPHEN (87) | HAWKING (73) | TEXT TO SPEECH (160) |
CLOCKWORK (111) | ORANGE (60) | STANLEY KUBRICK (171) |
Bij de laatste voorbeelden in bovenstaande tabel houden we enkel rekening met de letters om de woordwaarde te bepalen. Op die manier konden we ook resultaten bekomen die uit meerdere woorden bestaan.
Schrijf een functie letterwaarde waaraan een string (str) moet doorgegeven worden die bestaat uit één enkel karakter. De functie moet de waarde (int) van het karakter teruggeven. Letters hebben een waarde overeenkomstig hun positie in het alfabet (A=1, B=2, C=3, …). Hierbij wordt geen onderscheid gemaakt tussen hoofdletters en kleine letters. Alle andere karakters hebben waarde nul.
Schrijf een functie woordwaarde waaraan een string (str) moet doorgegeven worden. De functie moet de som van de waarden (int) van alle karakters in de string teruggeven.
Schrijf een functie iswoordsom waaraan drie strings (str) moeten doorgegeven worden. De functie moet een Booleaanse waarde (bool) teruggeven die aangeeft of de som van de woordwaarden van de eerste twee strings gelijk is aan de woordwaarde van de derde string.
>>> letterwaarde('A')
1
>>> letterwaarde('j')
10
>>> letterwaarde('!')
0
>>> woordwaarde('arm')
32
>>> woordwaarde('BEND')
25
>>> woordwaarde('elbow')
57
>>> iswoordsom('arm', 'BEND', 'elbow')
True
>>> iswoordsom('KING', 'chair', 'THRONE')
True
>>> iswoordsom('Monty', 'Python', 'SHRUBBERY')
False