Published on 2011-05-05 by Mark VandeWettering
I like to read the Programming Praxis website. Every post challenges you to write some simple programs to boost your skill, akin to finger exercises for a musical instrument. Today’s challenge was an interesting which intrigued Charles Babbage: creating word squares.
I spent about 10 minutes writing one in Python that worked rather well: here is an early version, which I augmented a bit. Running it against /usr/share/dict/words
gave way too many squares, with lots of really uncommon words. I had better luck with The 12dicts word lists, which concentrate on more common words. In particular, I came up with this pair of rather pleasing order 5 squares based upon the words BRAIN WAGON.
B
|
<td>
R
</td>
<td>
A
</td>
<td>
I
</td>
<td>
N
</td>
</tr>
<tr>
<td>
R
</td>
<td>
E
</td>
<td>
T
</td>
<td>
R
</td>
<td>
O
</td>
</tr>
<tr>
<td>
A
</td>
<td>
T
</td>
<td>
L
</td>
<td>
A
</td>
<td>
S
</td>
</tr>
<tr>
<td>
I
</td>
<td>
R
</td>
<td>
A
</td>
<td>
T
</td>
<td>
E
</td>
</tr>
<tr>
<td>
N
</td>
<td>
O
</td>
<td>
S
</td>
<td>
E
</td>
<td>
Y
</td>
</tr>
</table>
</td>
<td>
<table border="1" cellpadding="5">
<tr>
<td>
W
</td>
<td>
A
</td>
<td>
G
</td>
<td>
O
</td>
<td>
N
</td>
</tr>
<tr>
<td>
A
</td>
<td>
G
</td>
<td>
A
</td>
<td>
V
</td>
<td>
E
</td>
</tr>
<tr>
<td>
G
</td>
<td>
A
</td>
<td>
T
</td>
<td>
O
</td>
<td>
R
</td>
</tr>
<tr>
<td>
O
</td>
<td>
V
</td>
<td>
O
</td>
<td>
I
</td>
<td>
D
</td>
</tr>
<tr>
<td>
N
</td>
<td>
E
</td>
<td>
R
</td>
<td>
D
</td>
<td>
Y
</td>
</tr>
</table>
</td>
</tr>
Fun!
|