<?xml version="1.0" encoding="UTF-8"?>
<essay xml:lang="en" version="pto" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:dcterms="http://purl.org/dc/terms/" xmlns:gal="http://norman.walsh.name/rdf/gallery#">
<info>
    
    
    
    
    
    
    
<title>Good M{o,r,n,i,n}g</title><biblioid class="uri">http://norman.walsh.name/2004/08/26/goodMorning</biblioid>
<volumenum>7</volumenum>
<issuenum>153</issuenum>
<pubdate>2004-08-26T10:28:33-04:00</pubdate>
<date>$Date: 2005-09-11 10:27:02 -0400 (Sun, 11 Sep 2005) $</date>
<author>
      <personname>
<firstname>Norman</firstname>
	<surname>Walsh</surname>
</personname>
    </author>
<copyright>
      <year>2004</year>
      <holder>Norman Walsh</holder>
    </copyright>
<abstract>
<para>A little silliness and a very crude Perl program.</para>
</abstract>
<dc:subject rdf:resource="http://norman.walsh.name/knows/taxonomy#Humor"/>
</info>

<para xml:id="p1">It all started innocently enough. <personname>
      <firstname>Greg</firstname>
<surname role="suppress">Elin</surname>
    </personname> joins
<link xlink:href="irc:irc.freenode.net/rdfig">#rdfig</link> and
<link xlink:href="http://www.ilrt.bris.ac.uk/discovery/chatlogs/rdfig/2004-08-26.html#T13-55-19">says “monring”</link>:</para>

<programlisting> &lt;GregElin&gt; | monring
 &lt;balbinus&gt; | mroinng
      &lt;ndw&gt; | morinng
&lt;Talliesin&gt; | mornnig</programlisting>

<para xml:id="p2">A brief debate ensues about how many possibilities there are. The guesses
range from 25 to 120. The answer is 60:</para>

<programlisting>minnorg
minnrog
minonrg
minorng
minrnog
minrong
mionnrg
mionrng
miornng
mirnnog
mirnong
mironng
mninorg
mninrog
mnionrg
mniorng
mnirnog
mnirong
mnniorg
mnnirog
mnnoirg
mnnorig
mnnriog
mnnroig
mnoinrg
mnoirng
mnonirg
mnonrig
mnoring
mnornig
mnrinog
mnriong
mnrniog
mnrnoig
mnroing
mnronig
moinnrg
moinrng
moirnng
moninrg
monirng
monnirg
monnrig
monring
monrnig
morinng
morning
mornnig
mrinnog
mrinong
mrionng
mrninog
mrniong
mrnniog
mrnnoig
mrnoing
mrnonig
mroinng
mroning
mronnig</programlisting>

<para xml:id="p3">Actually, I think the answer is 59. I don’t think “morning” should count.</para>

<para xml:id="p4">I built that list with a <emphasis>very</emphasis> crude
Perl script:</para>

<programlisting>@c1 = ('o', 'r', 'n', 'i', 'n');

my %uniq = (); # the n's are not distinct, use a hash to get rid of "dups"

for my $p1 (0..4) {
    for my $p2 (0..4) {
	next if $p2 == $p1;
	for my $p3 (0..4) {
	    next if $p3 == $p1 || $p3 == $p2;
	    for my $p4 (0..4) {
		next if $p4 == $p1 || $p4 == $p2 || $p4 == $p3;
		for my $p5 (0..4) {
		    next if $p5 == $p1 || $p5 == $p2 || $p5 == $p3 || $p5 == $p4;
		    $uniq{"m" . $c1[$p1].$c1[$p2].$c1[$p3].$c1[$p4].$c1[$p5] . "g"} = 1;
		}
	    }
	}
    }
}

foreach my $word (sort keys %uniq) {
    print "$word\n";
}</programlisting>

<para xml:id="p5">Can anyone think of a better way?</para>

<para xml:id="p6">Let’s just leave the question of whether or not this exercise was worth
the time unanswered, ok?</para>

</essay>

