Beefy Boxes and Bandwidth Generously Provided by pair Networks
laziness, impatience, and hubris
 
PerlMonks  

Re^4: Another word puzzle with too many permutations

by oiskuu (Hermit)
on Oct 16, 2013 at 16:24 UTC ( #1058492=note: print w/replies, xml ) Need Help??


in reply to Re^3: Another word puzzle with too many permutations
in thread Another word puzzle with too many permutations

I noticed it too, that you score caps only. That said, if you score by length, it works nicely as well.
Another smart thing is to remove impossible words at earliest opportunity.
DOG: for my $dog (@_) { my $remaining = $letters; $remaining =~ s/$_//i or next DOG for split //, $dog; push @remain, $remaining; push @dogs, $dog; } while( my $dog = shift @dogs ) { dogtree( "$tree $dog", shift @remain, @dogs ); }
The given puzzle solves in 1-2 secs, and takes about 3 minutes for a full pass (return instead of exit).
Only one solution exists. A letter set such as
"A(11),B(3),C(2),D(8),E(6),F(1),H(8),I(10),J(1),K(1),L(6),M(1),N(10),O(9),P(2),R(7),S(6),T(9),U(7),V(1),W(1),X(1),Z(2)";
takes some 20 times longer...