Beefy Boxes and Bandwidth Generously Provided by pair Networks
Perl: the Markov chain saw
 
PerlMonks  

Re: Diamonds for fun

by ambrus (Abbot)
on Mar 07, 2011 at 14:13 UTC ( #891806=note: print w/ replies, xml ) Need Help??


in reply to Diamonds for fun

I'm quite sure this can be golfed further, but as it seems shorter than the above solutions I must post it.

perl -le 'printf"%*s\n",$t+$_,(1x$_)**2for(1x($t=pop))**2=~/./g' 9

Update: see also Christmas Tree.

Update: one character shorter:

perl -e 'printf"%*s\n",$t+$_,(1x$_)**2for(1x($t=pop))**2=~/./g' 9

Somewhat shorter:

perl -le 'print" "x($t-$_),(1x$_)**2for(1x($t=pop))**2=~/./g' 9

Update 2012-03-14: and see Spiraling integers for yet another arrangement of numbers.


Comment on Re: Diamonds for fun
Select or Download Code
Re^2: Diamonds for fun
by toolic (Bishop) on Mar 07, 2011 at 14:45 UTC
    You can shave 3 off your lowest score using perl 5.10:
    # score = 53 # 1 2 3 4 5 # 12345678901234567890123456789012345678901234567890123456789 perl -E'say" "x($t-$_),(1x$_)**2for(1x($t=pop))**2=~/./g' 9
    update due to hbm's observation:
    # score = 52 # 1 2 3 4 5 # 12345678901234567890123456789012345678901234567890123456789 perl -E'say$"x($t-$_),(1x$_)**2for(1x($t=pop))**2=~/./g' 9
Re^2: Diamonds for fun
by hbm (Hermit) on Mar 07, 2011 at 20:38 UTC

    Squaring a string of ones ((1x$_)**2) is very clever! This works for me up to 8, but 9 fails (because 111111111**2 = 1.23456789876543e+16). (Same for toolic's solution below...)

    You can save one more character with $" instead of " ".

      It works for 9 on a 64 bit system, which is why I didn't notice it's broken, but it is indeed broken on 64 bit systems.

      You could try to fix it with something like this, but as is that's too long and I don't feel much like golfing it now.

      perl -e 'printf"%*.0f\n",$t+abs,(1x abs)**2for 1..($t=pop),1-$t..-1' 9

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://891806]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (9)
As of 2015-07-02 06:22 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (30 votes), past polls