As an aside, there are no other solutions of the form that Ton used (1x$&*XX where Ton's XX is 40).
It seems that his solution truly is a one of a kind!
In addition to the one used in the 2006 Fonality golf challenge:
s!.!y$IVCXL426(-:$XLMCDIVX$dfor$$_.=5x$&*8%29628
don't forget about Ton's original one (click on response by Ton Hospel)
of equal length:
s!.!y$IVCXL91-80$XLMCDXVIII$dfor$$_.=4x$&%1859^7
used in the 2004 Polish golf tournament.
BTW I got a laugh out of this response by Maciej Misiak:
You should see some of Golfers after reading your explanation... eyes big like cups of tea, heart attacks, etc.
Update: Here is a test program to verify that all four magic formulae are correct:
use strict;
use Roman;
sub ton1 { my $t = shift; my $s;
($s.=4x$_%1859^7)=~y/IVCXL91-80/XLMCDXVIII/d
for $t=~/./g; return $s }
sub ton2 { my $t = shift; my $s;
($s.=5x$_*8%29628)=~y/IVCXL426(-:/XLMCDIVX/d
for $t=~/./g; return $s }
sub pmo1 { my $t = shift; my $s;
($s.="32e$_"%72726)=~y/CLXVI60-9/MDCLXVIX/d
for $t=~/./g; return $s }
sub pmo2 { my $t = shift; my $s;
($s.="57e$_"%474976)=~y/CLXVI0-9/MDCLXIXV/d
for $t=~/./g; return $s }
for my $i (1..3999) {
my $r = uc roman($i);
my $t1 = ton1($i);
my $t2 = ton2($i);
my $p1 = pmo1($i);
my $p2 = pmo2($i);
print "$i: $r\n";
$r eq $t1 or die "t1: expected '$r' got '$t1'\n";
$r eq $t2 or die "t2: expected '$r' got '$t2'\n";
$r eq $p1 or die "p1: expected '$r' got '$p1'\n";
$r eq $p2 or die "p2: expected '$r' got '$p2'\n";
}
print "all tests successful\n";
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|