[perl-python] combinatorics fun

Xah Lee xah at xahlee.org
Thu Feb 10 17:51:24 EST 2005


a year ago i wrote this perl program as part of a larger program.

as a exercise of fun, let's do a python version. I'll post my version
later today.

=pod

combo(n) returns a collection with elements of pairs that is all
possible combinations of 2 things from n. For example, combo(4)
returns {'3,4' => ['3',4],'1,2' => [1,2],'1,3' => [1,3],'1,4' =>
[1,4],'2,3' => ['2',3],'2,4' => ['2',4]}; Hash form is returned
instead of array for this program.

=cut

sub combo ($) {
    my $max=$_[0];
    my %hh=();
    for (my $j=1; $j < $max; ++$j) {
        for (my $i=1; $i <= $max; ++$i) {
            my $m = (($i+$j)-1)%$max+1;
            if ($i < $m){ $hh{"$i,$m"}=[$i,$m];}
        }
    }
    return \%hh;
}


use Data::Dumper;
$Data::Dumper::Indent=0;
print Dumper combo(5);


This is Perl-Python a-day. To subscribe, see
http://xahlee.org/perl-python/python.html

Xah
xah at xahlee.org
http://xahlee.org/PageTwo_dir/more.html




More information about the Python-list mailing list