Sunday, October 22, 2017

english - Five words with one vowel difference


Can you find a set of 5 words in English which all differ by just one vowel? This is easiest to explain with an example:


Batter. Better. Bitter. Botter. Butter


Close, but "botter" isn't a real word.


There's no upper or lower limit on word length.


I'd like the words to be in fairly common usage - we shouldn't need to run to the dictionary to verify your claim. It can be done, I have a few sets already, but I'm sure you can find more. I will mark as the answer the one with most sets/best sets/least obscure words.



Answer



I've actually been asked this question before: so I wrote a script to find all the answers!


import re


def read_dictionary(filename):
dict = set()
with open(filename, 'r') as f:
for w in f:
dict.update([w.rstrip().lower()])
return dict

def find_omnivocalics(dict, vowels="aeiou"):
assert len(vowels) >= 2

omnivocalics = []
for w in dict:
for m in re.finditer(vowels[0], w):
omnivocalic = True
for v in vowels[1:]:
if w[:m.start()] + v + w[m.end():] not in dict:
omnivocalic = False
break
if omnivocalic:
omnivocalics.append(w[:m.start()] + '*' + w[m.end():])

omnivocalics.sort(key=lambda item: (len(item), item))
print(", ".join(omnivocalics))

Using the TWL Scrabble word list returns the following 84 word sets (sorted by length):



*n, *s, m*, b*d, b*g, b*s, b*t, d*n, f*n, f*r, g*t, h*p, h*t, m*d, m*g, n*b, p*p, p*t, r*m, t*n, t*t, b*ds, b*gs, b*ll, b*nd, b*ts, c*re, c*te, d*ns, d*re, f*ns, h*ck, h*ed, h*ts, l*st, m*ds, m*gs, m*ll, m*re, m*ss, m*te, n*bs, p*ck, p*le, p*ns, p*ps, p*ts, r*ck, r*ms, t*le, t*ns, t*ts, b*lls, b*nds, c*res, c*tes, d*lly, h*cks, h*llo, m*lls, m*res, m*ssy, m*tes, p*cks, p*les, r*cks, t*les, b*lled, d*cker, h*llos, m*ssed, m*sses, p*tted, r*cked, b*gging, b*lling, bl*nder, d*ckers, h*lloed, h*lloes, m*ssing, p*tting, r*cking and h*lloing.



Obviously, some of the words used are obscure. The best examples, in my opinion, are:



* blander/blender/blinder/blonder/blunder

* patting/petting/pitting/potting/putting
* masses/messes/misses/mosses/musses
* packs/pecks/picks/pocks/pucks
* last/lest/list/lost/lust
* bag/beg/big/bog/bug



Three of the examples above also allow the letter y, but use obscure words: m*, b*s and h*p. Turns out this sort of thing is charmingly called 'vowel movements'. See Vowel cascades, vowel movements and di-odes for an article about this with more examples.


No comments:

Post a Comment

classical mechanics - Moment of a force about a given axis (Torque) - Scalar or vectorial?

I am studying Statics and saw that: The moment of a force about a given axis (or Torque) is defined by the equation: $M_X = (\vec r \times \...