logo       

Perl Translation [was Re: [SPOILER] Medium QOTW 1 solution]: msg#00014

lang.perl.qotw.discuss

Subject: Perl Translation [was Re: [SPOILER] Medium QOTW 1 solution]

On Monday 17 January 2005 12:20, Zsban Ambrus wrote:
> Here's my solution to perl Medium QOTW 1.
>

I was surprised to see such a short solution can still work for every N, but
it seems to be the case. (passes all the tests in my Test-Suite.t and also
works for every number up to 380 or so).

To test it using my test-suite, I translated it to Perl:

<<<
use strict;
use warnings;

sub allocate_schedule
{
my $n = shift;

my $m = $n - 1;
my @ret;
for my $d (0 .. ($m-1))
{
my @day = ();
for my $k (0 .. ($m-1))
{
if ($d == $k)
{
push @day, $m;
}
else
{
push @day, ((2*$d-$k) % $m);
}
}
push @day, $d;
push @ret, [ @day ];
}
return \@ret;
}

1;
>>>

One thing that delayed me was the fact that I translated the loops to

for my $d (0 .. $m)

Instead of

for my $d (0 .. ($m-1))

Apparently the (0 ... m) operator in Ruby does not evaluate "m" itself, as
opposed to Perl.

In any case, this solution is very simple and short and still works. I only
looked at it late last night, when I was too tired to think. Now, I'll try to
better understand its philosophy.

Well done!

Regards,

Shlomi Fish

---------------------------------------------------------------------
Shlomi Fish shlomif-ik1l9ssToec+JF/nGntIXQ@xxxxxxxxxxxxxxxx
Homepage: http://www.shlomifish.org/

Knuth is not God! It took him two days to build the Roman Empire.



<Prev in Thread] Current Thread [Next in Thread>
Google Custom Search

News | FAQ | advertise