Consider the
Splitting Words puzzle.
If you have trouble anagramming a block, you may add one or more additional letters of your choice, in order to form a word. Each added letter, however, counts as 2 (as a penalty) for your score. If you cannot find any solution for a given word, add 0 points to your score.
Contractions, hyphenated words, and capitalized words are not allowed in answers, but plurals and past tense forms of verbs are fine.
Below are 8 words. Can you achieve a score equal to or exceeding 20?
1. MINIATURIZATION 2. UNSYMPATHETIC
3. ACQUIESCENCE 4. NOCTAMBULATION
5. DYSFUNCTIONAL 6. NETHERMOST
7. MALADROITNESS 8. SOMNAMBULISM
clc,clearvars
global anaWds sets setbuild
fid=fopen('c:\words\words.txt','r');
anaWds=string.empty(0,2);
ct=0;
while ~feof(fid)
w=fgetl(fid);
if w==lower(w)
ct=ct+1;
if mod(ct,10000)==0
disp(w)
end
anaWds(ct+1,:)=[string(sort(w)),string(w)];
end
end
fclose('all')
anaWds=sortrows(anaWds);
for baseword=["miniaturization" ...
"unsympathetic" "acquiescence" ...
"noctambulation" "dysfunctional" ...
"nethermost" "maladroitness" ...
"somnambulism"]
disp(upper(char(baseword)))
disp(' ')
sets={};
setbuild=[];
findsets(char(baseword))
cb=char(baseword);
for i=1:length(sets)
wcode=sets{i};
psn=1;
for j=1:length(wcode)
st=wcode(j);
for k=st:st+99
w=anaWds(k,2);
lgth=length(char(w));
if ~isequal(w,cb(psn:psn+lgth-1))
fprintf('%s ',w);
end
if ~isequal(anaWds(k+1,1),anaWds(k,1))
break
end
end
psn=psn+lgth;
fprintf('\n')
end
fprintf('\n')
end
end
function findsets(wd)
global anaWds sets setbuild
for l=2:length(wd)
[f,lst]=findAna(wd(1:l));
if f~=0 && (~isequal(anaWds(f,2),wd(1:l)) ...
|| ~isequal(anaWds(lst,2),wd(1:l)))
setbuild=[setbuild f];
if l==length(wd)
sets{end+1}=setbuild;
else
findsets(wd(l+1:end))
end
setbuild=setbuild(1:end-1);
end
end
end
function [first,last]=findAna(ana)
global anaWds
ag=string(sort(ana));
low=1; high=length(anaWds);
prev=high;
mid=floor((low+high)/2);
while low<high
if ag>=anaWds(mid,1)
low=mid;
end
if ag<=anaWds(mid,1)
high=mid;
end
if prev==mid
low=high;
end
prev=mid;
mid=floor((low+high)/2);
end
if ag~=anaWds(mid,1)
first=0;last=0;
else
while anaWds(mid-1,1)==ag
mid=mid-1;
end
first=mid;
while anaWds(mid+1,1)==ag
mid=mid+1;
end
last=mid;
end
end
produces a list of different ways of breaking each word into blocks. Each such way is listed with a line for each anagrammed word in the block. If there can be more than one anagram for a given block, they are all listed on one line.
For example, for UNSYMPATHETIC below, there are two ways of breaking it into four blocks; in one of those ways, the third block could be represented by either APT or TAP.
MINIATURIZATION
nim
ai
ut
izar
it
no
nim
ai
ut
izar
into
animi
ut
izar
it
no
animi
ut
izar
into
minutia
izar
it
no
minutia
izar
into
UNSYMPATHETIC
nus sun
my
apt tap
ethic
nus sun
my
phat
cite
ACQUIESCENCE
NOCTAMBULATION
on
act cat
bum
al
it
no
on
act cat
bum
al
into
on
act cat
bum
alit tail tali
no
on
act cat
bum
latino talion
on
act cat
album
it
no
on
act cat
album
into
con
at
bum
al
it
no
con
at
bum
al
into
con
at
bum
alit tail tali
no
con
at
bum
latino talion
con
at
album
it
no
con
at
album
into
con
mat
tabuli
no
con
mat
ablution abutilon
canto cotan octan
bum
al
it
no
canto cotan octan
bum
al
into
canto cotan octan
bum
alit tail tali
no
canto cotan octan
bum
latino talion
canto cotan octan
album
it
no
canto cotan octan
album
into
DYSFUNCTIONAL
NETHERMOST
en
eth het
morts storm
ten
eh
morts storm
ten
mothers smother thermos
hent then
re
mots toms
hent then
rem
sot
hent then
metros
stenotherm
MALADROITNESS
am
al
dor rod
insets steins
am
dal
or
insets steins
am
dal
oestrins
am
lard
nosiest
lam
rad
nosiest
lam
orad road
insets steins
lam
aroid radio
nests
lam
intradoses
alma lama
dor rod
insets steins
armload
insets steins
SOMNAMBULISM
os
man nam
bum
mils slim
mos oms
an
bum
mils slim
mos oms
man
limbus
mons noms
ma
limbus
mons noms
album
mis sim
manos mason moans monas nomas
bum
mils slim
Scoring:
MINIATURIZATION:
nim, ai, ut, izar, it, no 6 points
UNSYMPATHETIC:
sun, my, tap, ethic 4 points
ACQUIESCENCE: 0 points
NOCTAMBULATION:
on, cat, bum, al, it, no 6 points
on, cat album, it, no 5 points
(more common words)
DYSFUNCTIONAL: 0 points
NETHERMOST:
then, re, toms 3 points
MALADROITNESS:
am, al, rod, insets 4 points
am, dal, or, insets 4 points
am, lard, nosiest 3 poings
SOMNAMBULISM:
oms, an, bum, slim 4 points
moans, bum, slim 3 points
-----------
27 points
Subtract appropriately if you think al, ut, dal, or oms is too obscure.
|
Posted by Charlie
on 2023-09-25 14:08:12 |