[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

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

Carl Drinkwater

9/18/2006 10:34:00 AM

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-di...

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.


16 Answers

James Gray

9/18/2006 1:56:00 PM

0

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-di...

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.jo...
pi.html").read.gsub(/\s/,"")[/\d{1000}/]

Jeff Schwab

9/18/2006 2:05:00 PM

0

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-di...
>
> 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....).read.gsub(/\s/,"")[/\d{1000}/]

LOL, and A for effort. I can see you're familiar with this sort of quiz. :)

Harold Hausman

9/18/2006 2:22:00 PM

0

On 9/18/06, James Edward Gray II <james@grayproductions.net> 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-di...
>
> 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.jo...
> 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

Carl Drinkwater

9/18/2006 2:26:00 PM

0

Hi,

>> http://codegolf.com/1000-di...
>
> 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....).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

9/18/2006 2:28:00 PM

0

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.

James Gray

9/18/2006 2:30:00 PM

0

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-di...

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]


John Carter

9/18/2006 11:57:00 PM

0

Martin Weber

9/19/2006 12:03:00 AM

0

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

Patrick Hurley

9/19/2006 3:10:00 AM

0

On 9/18/06, Martin S. Weber <Ephaeton@gmx.net> 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

Carl Drinkwater

9/19/2006 8:53:00 AM

0

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.cabo...

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

Regards,
Carl.