Beefy Boxes and Bandwidth Generously Provided by pair Networks
Clear questions and runnable code
get the best and fastest answer
 
PerlMonks  

Re^2: Counting positive numbers

by Young Monk (Novice)
on Jul 03, 2010 at 16:56 UTC ( [id://847915]=note: print w/replies, xml ) Need Help??


in reply to Re: Counting positive numbers
in thread Counting positive numbers

It was in PERL Only!!!

Check this link yourself

Replies are listed 'Best First'.
Re^3: Counting positive numbers
by eyepopslikeamosquito (Archbishop) on Jul 03, 2010 at 22:54 UTC

    I don't believe it can be done "legitimately" in six strokes. Only by "cheating". I have no experience of spoj competitions, but it looks like solutions are accepted automatically by a robot referee (i.e. without a human checking each submitted solution for correctness). With this sort of automated judging, part of the game (lamentably IMHO) is finding a way to trick the robot into accepting an invalid solution. In the past, cheating has been common at codegolf sites with automated judging. For example:

    In your spoj game, one (bizarre) rule that may be exploitable is:

    Score equals to size of source code of your program except symbols with ASCII code <= 32.
    Why on earth would they make such an arbitrary rule? This is not true golf IMHO. It's also possible there are bugs in their robot referee or test program for this particular game (e.g. a poor or very small set of fixed test data) which may be exploited. But, to me, this sort of activity is not really golf anymore; it's more akin to finding exploits to hack into web sites.

      After a little googling, i found that those top scoring guys have actually exploiting the "<33 ASCII not counted as character" condition to get a very high(low, actually) score...!

      Take a look

      Im wondering, how can u compress a perl program into characters with ASCII <33 such tat the latter still works???

        It seems to me you'll need to invent an encoding scheme and build the required "normal" program string from a string consisting of characters in the ord range 0-32 ... then use Perl's eval function (or perhaps s///ee) to evaluate it.

        This looks like a tricky problem to me, especially for a Perl novice. Many approaches are possible. One way to get started is to use the s/// and the y/// operators with a delimiter less than ord(32) like so:

        s^Z^Z^A^B^C^D^E^F^G^H^Z; y^Z^A^B^C^D^E^F^G^H^Za-z^Z; print
        where ^A to ^Z above are CTRL-A to CTRL-Z (i.e. chars with ord 1..26). Running the little test program above produces:
        abcdefgh
        You may be able to extend this scheme to produce whatever 30 or so characters are required by a "normal" (unencoded) solution. Having generated the required program string, you could replace the print above with eval. That would seem to yield a solution of around 11 "characters" in length. If you start down this road, you may find further inspiration as you try out ideas.

        Some old nodes from mtve might provide further ideas you could try:

        Most likely this is a golfed version of Acme::Bleach. But doing something like that in 6 characters still seems hard...

Re^3: Counting positive numbers
by BrowserUk (Patriarch) on Jul 03, 2010 at 17:34 UTC

    I don't believe it!

Log In?
Username:
Password:

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

How do I use this?Last hourOther CB clients
Other Users?
Others contemplating the Monastery: (10)
As of 2024-03-28 12:04 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found