http://www.perlmonks.org?node_id=811926


in reply to The golf course looks great, my swing feels good, I like my chances (Part V)

My very first solution, also around 140 strokes, used trigonometry.

I'm a different animal from Andrew, I think, and I prefer solutions that make some sense, rather than a magic formula, or unpacking a bizarre string :)

Here's a speeded up version of my whittling!
$c[5-int(5.2*cos($a=$_*.524))][8+int(8.2*sin($a))] $c[5-int 5.2*cos$_*.52][8+int 8.2*sin$_*.524] $c[5-int 5.2*cos$_*.52][8+7.8*sin$_*.523] $c[5-int 5.2*cos($_*=.523)][8+7.8*sin] $c[5.61-4.7*cos($_*=.523)][8+7.8*sin] $c[5.5-4.7*cos($_*=.523)][8+7.8*sin] $c[$_*=.523,5.5-4.7*cos][8+7.8*sin] $c[$_*=.52,5.5-4.7*cos][8+7.4*sin]
The first solution has ints on both indicies, uses .524 (which I think is a closer approximation of the hours to radians factor than .52), brackets around everthing - generally a mess.

I was relatively quickly able to get rid of most of the bracketing, eventually got rid of one int, (then much later the other!), and trimmed the numbers to fit.

I think the best bit of golfing was to change 5.5-4.7*cos($_*=.523) to $_*=.523,5.5-4.7*cos. It was one of those "I don't think this will work but I may as well try it" moments! Hurrah!

There are quite a large range of numbers that produce the correct pattern, but only a few with the least number of decimals. I think this is fairly optimal. I'm going to assume(!!) that Andrew has tried and failed to better this.