[ANN] Code Golf Challenge : 1,000 Digits Of Pi

Discussion in 'Ruby' started by Carl Drinkwater, Sep 18, 2006.

  1. Hi all,

    Code Golf's 12th challenge has just been added to the site. It asks you
    to calculate the first 1,000 digits of Pi - Something I'm sure most of
    you have thought about, but never done. You can see the challenge at :

    http://codegolf.com/1000-digits-of-pi

    For those who haven't heard of codegolf.com, it can be described as
    "allowing you to show off your code-fu by trying to solve coding
    problems using the least number of keystrokes."

    The site currently supports Perl, PHP, Python and Ruby with Scheme to
    (hopefully) follow soon. Your entries are automatically executed and
    scored - No need to wait for someone to validate your code.

    Other challenges include implementing the Vigenere Cipher, Prime
    factors, SHA-256 Hashing as well as the obvious 99 Bottles Of Beer. All
    of the challenges are competitive but there is still scope to well in
    them, even if you're new to the site.

    I hope some of you will find this interesting, and sorry for disturbing
    you if not!

    Have fun,
    Carl.
     
    Carl Drinkwater, Sep 18, 2006
    #1
    1. Advertising

  2. On Sep 18, 2006, at 5:33 AM, Carl Drinkwater wrote:

    > Hi all,
    >
    > Code Golf's 12th challenge has just been added to the site. It
    > asks you to calculate the first 1,000 digits of Pi - Something I'm
    > sure most of you have thought about, but never done. You can see
    > the challenge at :
    >
    > http://codegolf.com/1000-digits-of-pi


    Darn it! They blocked my attempt to use open-uri. How's a guy
    suppose to cheat with these restrictions. Sheesh!

    James Edward Gray II

    require"open-uri";puts"3."+open("http://www.joyofpi.com/
    pi.html").read.gsub(/\s/,"")[/\d{1000}/]
     
    James Edward Gray II, Sep 18, 2006
    #2
    1. Advertising

  3. On 9/18/06, James Edward Gray II <> wrote:
    > On Sep 18, 2006, at 5:33 AM, Carl Drinkwater wrote:
    >
    > > Hi all,
    > >
    > > Code Golf's 12th challenge has just been added to the site. It
    > > asks you to calculate the first 1,000 digits of Pi - Something I'm
    > > sure most of you have thought about, but never done. You can see
    > > the challenge at :
    > >
    > > http://codegolf.com/1000-digits-of-pi

    >
    > Darn it! They blocked my attempt to use open-uri. How's a guy
    > suppose to cheat with these restrictions. Sheesh!
    >
    > James Edward Gray II
    >
    > require"open-uri";puts"3."+open("http://www.joyofpi.com/
    > pi.html").read.gsub(/\s/,"")[/\d{1000}/]
    >


    idk James, that might change it from an exercise in code-fu into an
    exercise in who-has-the-shortest-domain-name-fu..

    Anyone have any idea how they're safely running the code on the server?

    Freaky freaky sandbox action?

    -Harold
     
    Harold Hausman, Sep 18, 2006
    #3
  4. Hi,

    >> http://codegolf.com/1000-digits-of-pi

    >
    > Darn it! They blocked my attempt to use open-uri. How's a guy suppose
    > to cheat with these restrictions. Sheesh!


    We wouldn't want to make it too easy for you!

    > require"open-uri";puts"3."+open("http://www.joyofpi.com/pi.html").read.gsub(/\s/,"")[/\d{1000}/]


    Believe it or not, someone is 30-odd bytes better than that and he's
    (presumably) actually calculating the digits!

    Regards,
    Carl.
     
    Carl Drinkwater, Sep 18, 2006
    #4
  5. Hi Harold,

    > Anyone have any idea how they're safely running the code on the server?
    >
    > Freaky freaky sandbox action?


    No, Freaky freaky jail-and-chroot action - We can support pretty much
    any language that way. I might finally get round to writing an article
    about how we're doing it, but I've been saying that for months, so I
    wouldn't hold my breath!

    Regards,
    Carl.
     
    Carl Drinkwater, Sep 18, 2006
    #5
  6. On Sep 18, 2006, at 5:33 AM, Carl Drinkwater wrote:

    > Hi all,
    >
    > Code Golf's 12th challenge has just been added to the site. It
    > asks you to calculate the first 1,000 digits of Pi - Something I'm
    > sure most of you have thought about, but never done. You can see
    > the challenge at :
    >
    > http://codegolf.com/1000-digits-of-pi


    Another blocked cheat! These people clearly do not appreciate
    cheating as they should. ;)

    James Edward Gray II

    #!ruby -rbigdecimal -rbigdecimal/math
    include BigMath;puts"3."+BigDecimal.PI(t=1000).to_s[3,t]
     
    James Edward Gray II, Sep 18, 2006
    #6
  7. Carl Drinkwater

    John Carter Guest

    On Mon, 18 Sep 2006, James Edward Gray II wrote:

    > Another blocked cheat! These people clearly do not appreciate cheating as
    > they should. ;)
    >
    > James Edward Gray II
    >
    > #!ruby -rbigdecimal -rbigdecimal/math
    > include BigMath;puts"3."+BigDecimal.PI(t=1000).to_s[3,t]



    Indeed they should appreciate it...
    http://www.schneier.com/crypto-gram-0609.html#12

    John Carter Phone : (64)(3) 358 6639
    Tait Electronics Fax : (64)(3) 359 4632
    PO Box 1645 Christchurch Email :
    New Zealand

    "We have more to fear from
    The Bungling of the Incompetent
    Than from the Machinations of the Wicked." (source unknown)
     
    John Carter, Sep 19, 2006
    #7
  8. On Mon, Sep 18, 2006 at 07:33:57PM +0900, Carl Drinkwater wrote:
    > (...)
    > I hope some of you will find this interesting, and sorry for disturbing
    > you if not!


    Code golfing is not for me, yet watching others do is very amusing.
    So when will the submitted entries be open to public ?

    -Martin
     
    Martin S. Weber, Sep 19, 2006
    #8
  9. On 9/18/06, Martin S. Weber <> wrote:
    > On Mon, Sep 18, 2006 at 07:33:57PM +0900, Carl Drinkwater wrote:
    > > (...)
    > > I hope some of you will find this interesting, and sorry for disturbing
    > > you if not!

    >
    > Code golfing is not for me, yet watching others do is very amusing.
    > So when will the submitted entries be open to public ?
    >
    > -Martin
    >
    >


    They are still discussing it on their forums, but I just looked today
    and tried out the 99 bottles of beer. I have the shortest Ruby (202
    bytes), but I am only tied for 10th place overall. The best Perl entry
    is kicking my butt at 176 bytes. I think this is probably due to the
    slightly more verbose string interpolation in Ruby, but I am
    interested in what could be done to further shrink my script:

    @a='#{n} bottle#{n>1?:s:""} of beer'
    @b=" on the wall"
    (n=99).times{puts eval"\"#@a#@b, #@a.\n\#{n-=1;n<1?(n=99;'Go to the
    store and buy some more'):'Take one down and pass it around'},
    #@a#@b.\n\n\""}

    pth
     
    Patrick Hurley, Sep 19, 2006
    #9
  10. Hi Patrick,

    > They are still discussing it on their forums, but I just looked today
    > and tried out the 99 bottles of beer. I have the shortest Ruby (202
    > bytes), but I am only tied for 10th place overall. The best Perl entry
    > is kicking my butt at 176 bytes. I think this is probably due to the
    > slightly more verbose string interpolation in Ruby, but I am
    > interested in what could be done to further shrink my script:


    Very good attempt! Unfortunately, the shortest Ruby is 186 bytes, but
    both people who have got that score have better solutions in Perl, so
    their Ruby entries don't show on the Overall Leaderboard. (Each
    language is scored individually as well as there being an overall
    leaderboard.)

    > @a='#{n} bottle#{n>1?:s:""} of beer'
    > @b=" on the wall"
    > (n=99).times{puts eval"\"#@a#@b, #@a.\n\#{n-=1;n<1?(n=99;'Go to the
    > store and buy some more'):'Take one down and pass it around'},
    > #@a#@b.\n\n\""}


    You can save three bytes by including a literal newline instead of \n :

    http://pastie.caboo.se/13961

    I'm sure you can shave more bytes of it!

    Regards,
    Carl.
     
    Carl Drinkwater, Sep 19, 2006
    #10
  11. Carl Drinkwater

    MonkeeSage Guest

    Re: Code Golf Challenge : 1,000 Digits Of Pi

    Wow, ya'll are good code golfers! Of the few challenges I've been able
    to solve so far, my solutions are much bigger than the winners (about
    in the middle from smallest to largest). I guess I'm not gonna be the
    Tiger Woods of code golfing. My best effort on the 99 bottles challenge
    is 243 bytes ;)

    i="%d bottle%s of beer"
    j=" on the wall"
    k="\nTake one down and pass it around, "
    l="\nGo to the store and buy some more, "
    99.downto(1){|x|m=x-1>0?[k,x-1]:[l,99];n=i%[x,:)s if x>1)];
    puts n+j+', '+n+'.'+m[0]+i%[m[1],:)s if m[1]>1)]+j+".\n\n"}

    Regards,
    Jordan
     
    MonkeeSage, Sep 19, 2006
    #11
  12. Re: Code Golf Challenge : 1,000 Digits Of Pi

    Hey Jordan,

    > Wow, ya'll are good code golfers! Of the few challenges I've been able
    > to solve so far, my solutions are much bigger than the winners (about
    > in the middle from smallest to largest). I guess I'm not gonna be the
    > Tiger Woods of code golfing. My best effort on the 99 bottles challenge
    > is 243 bytes ;)
    >
    > i="%d bottle%s of beer"
    > j=" on the wall"
    > k="\nTake one down and pass it around, "
    > l="\nGo to the store and buy some more, "
    > 99.downto(1){|x|m=x-1>0?[k,x-1]:[l,99];n=i%[x,:)s if x>1)];
    > puts n+j+', '+n+'.'+m[0]+i%[m[1],:)s if m[1]>1)]+j+".\n\n"}


    I tell you what though, if obfuscated code were the aim, you would
    surely win! I like the use of :s to get the "s" to pluralise the
    bottle, I'm sure I could use that somewhere.

    I don't know what tips to give you really, other that your code doesn't
    need to be that complicated! Stick in there though, it takes a bit of a
    mindset change to golf.

    C.
     
    Carl Drinkwater, Sep 19, 2006
    #12
  13. Carl Drinkwater

    MonkeeSage Guest

    Re: Code Golf Challenge : 1,000 Digits Of Pi

    Carl Drinkwater wrote:
    > I tell you what though, if obfuscated code were the aim, you would
    > surely win!


    Hehe! You should see some of my javascript bookmarklets! It's kind of
    fun to break all the rules of good programming though.

    > I like the use of :s to get the "s" to pluralise the
    > bottle, I'm sure I could use that somewhere.


    I actually gipped that from Patrick's code above (i.e., the ternary in
    @a).

    > I don't know what tips to give you really, other that your code doesn't
    > need to be that complicated! Stick in there though, it takes a bit of a
    > mindset change to golf.


    Thanks! I don't think I'm clever enough to beat most of the folks, but
    it's fun to try. :)

    Regards,
    Jordan
     
    MonkeeSage, Sep 19, 2006
    #13
  14. Carl Drinkwater

    Sander Land Guest

    On 9/18/06, Carl Drinkwater <> wrote:
    > (presumably) actually calculating the digits!


    I got a 64 bytes version now, based on the "tiny c program" from
    http://www.boo.net/~jasonp/pipage.html
    And it does calculate the digits, although i'm not yet sure how :)

    I don't care much for these rankings, so what would be a nice time to
    post this without spoiling it for others?
     
    Sander Land, Sep 19, 2006
    #14
  15. On 9/18/06, James Edward Gray II <> wrote:
    > On Sep 18, 2006, at 5:33 AM, Carl Drinkwater wrote:
    >
    > > Hi all,
    > >
    > > Code Golf's 12th challenge has just been added to the site. It
    > > asks you to calculate the first 1,000 digits of Pi - Something I'm
    > > sure most of you have thought about, but never done. You can see
    > > the challenge at :
    > >
    > > http://codegolf.com/1000-digits-of-pi

    >
    > Darn it! They blocked my attempt to use open-uri. How's a guy
    > suppose to cheat with these restrictions. Sheesh!
    >
    > James Edward Gray II
    >
    > require"open-uri";puts"3."+open("http://www.joyofpi.com/
    > pi.html").read.gsub(/\s/,"")[/\d{1000}/]


    Haha, ever the cheater, James Gray!
     
    Leslie Viljoen, Sep 19, 2006
    #15
  16. Carl Drinkwater

    Guest

    On Wed, 20 Sep 2006, Leslie Viljoen wrote:

    > On 9/18/06, James Edward Gray II <> wrote:
    >> On Sep 18, 2006, at 5:33 AM, Carl Drinkwater wrote:
    >>
    >> > Hi all,
    >> >
    >> > Code Golf's 12th challenge has just been added to the site. It
    >> > asks you to calculate the first 1,000 digits of Pi - Something I'm
    >> > sure most of you have thought about, but never done. You can see
    >> > the challenge at :
    >> >
    >> > http://codegolf.com/1000-digits-of-pi

    >>
    >> Darn it! They blocked my attempt to use open-uri. How's a guy
    >> suppose to cheat with these restrictions. Sheesh!
    >>
    >> James Edward Gray II
    >>
    >> require"open-uri";puts"3."+open("http://www.joyofpi.com/
    >> pi.html").read.gsub(/\s/,"")[/\d{1000}/]

    >
    > Haha, ever the cheater, James Gray!


    i tried that too. i figure they've munged $:, but a concerted effort to use

    load absolute_path_to_open_uri_rb

    may get it. ;-)

    -a
    --
    in order to be effective truth must penetrate like an arrow - and that is
    likely to hurt. -- wei wu wei
     
    , Sep 19, 2006
    #16
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Carl Drinkwater
    Replies:
    7
    Views:
    506
    Paddy
    Sep 18, 2006
  2. Calvin Spealman
    Replies:
    3
    Views:
    334
    Neil Cerutti
    Sep 19, 2006
  3. Carl Drinkwater
    Replies:
    19
    Views:
    283
    Noah Easterly
    Sep 29, 2006
  4. Chris Angelico

    Code golf challenge: XKCD 936 passwords

    Chris Angelico, Oct 8, 2013, in forum: Python
    Replies:
    19
    Views:
    207
    Roy Smith
    Oct 10, 2013
  5. Tim Chase
    Replies:
    0
    Views:
    115
    Tim Chase
    Oct 8, 2013
Loading...

Share This Page