http://qs321.pair.com?node_id=1009253

It's unfortunate that those golfers did feel so very disadvantaged about not being 'in the know' about Ton's discovery. But I have to agree with Ton's words on this:

Nothing stops anyone from thinking of the magic formula for himself.

At this point, it might be worth mentioning that there are vastly many Ton-length or near-Ton-length formulae, waiting to be had by anyone who had thought to look for one. My (poorly written) brute forcer found several almost immediately:

```"12e\$&"%109082 # I=0, V=[89], X=[347]
"12e\$&"%109083 # I=0, V=7, X=[649]
"12e\$&"%109086 # I=0, V=4, X=[35]
"14e\$&"%87498  # I=0, V=2, X=6
...

the last of which is equal in length to Ton's. Of course, the most difficult part of finding a magic formula is not writing the search algorithm, but knowing what to search for in the first place. Given that you know that you will be transliterating digits for numerals (admittedly, a logical step that I was spared), a few things should be immediately apparent:

1. The base of the expression should increase by a factor of 10 for each digit. This follows directly from the regularity (the adding of one digit) expressed from 0-3, and again from 5-8 (Ton's expression increases by a factor of 10 plus a constant, but the result is similar).
2. The modulo should fall between the value for 3, and the value for 4. This follows directly from the fact that 4 breaks the above mentioned regularity.
3. The value for 5, after the modulo, should be smaller than the modulo/1000. This follows directly from the fact that the regularity beginning with 5 needs to continue until 8.

The most obvious formulation of this is "XXe\$&"%YYYYYY. Had none of these worked (instead of the vastly many that do), I'm not sure if I would have thought of string repetition as a suitable candidate as Ton did, but probably not. At least, not in any short period of time.

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!

Replies are listed 'Best First'.
Re^4: Dueling Flamingos: The Story of the Fonality Christmas Golf Challenge
by eyepopslikeamosquito (Bishop) on Dec 18, 2012 at 10:12 UTC

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 of equal length:
```s!.!y\$IVCXL91-80\$XLMCDXVIII\$dfor\$\$_.=4x\$&%1859^7
used in the 2004 Polish golf tournament.

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";