Math::Combination_out - version 0.03 ==================================== INSTALLATION To install this module type the following: perl Makefile.PL make make test make install SYNOPSIS Math::Combination_out - Combinations without or with repetition In this module was applied the approach for k-combinations without and with repetition in lexicographic order, presented in the ANSI-C code by Siegfried Koepf at: http://www.aconnect.de/friends/editions/computer/combinatoricode_e.html =head1 SYNOPSIS Example1: Combinations without repetition #!/usr/bin/perl use strict; use warnings; use diagnostics; use Math::Combination_out qw(:CMB); BEGIN { use lib 'lib'; } #array for combinatorics my @words = qw/a1 b2 c3 d4 e5 f6/; #length for combinatorics, use only integer! my $k = 4; #option: 1 - without repetition my $opt = 1; push(@words, $k); push(@words, $opt); print Combinations(@words),"\n"; Result: (1) a1 b2 c3 d4 (2) a1 b2 c3 e5 (3) a1 b2 c3 f6 (4) a1 b2 d4 e5 (5) a1 b2 d4 f6 (6) a1 b2 e5 f6 (7) a1 c3 d4 e5 (8) a1 c3 d4 f6 (9) a1 c3 e5 f6 (10) a1 d4 e5 f6 (11) b2 c3 d4 e5 (12) b2 c3 d4 f6 (13) b2 c3 e5 f6 (14) b2 d4 e5 f6 (15) c3 d4 e5 f6 Example2: Combinations with repetition #!/usr/bin/perl use strict; use warnings; use diagnostics; use Math::Combination_out qw(:CMB); BEGIN { use lib 'lib'; } #array for combinatorics my @words = qw/a1 b2 c3/; #length for combinatorics, use only integer! my $k = 3; #option: 2 - with repetition my $opt = 2; push(@words, $k); push(@words, $opt); print Combinations(@words),"\n"; Result: (1) a1 a1 a1 (2) a1 a1 b2 (3) a1 a1 c3 (4) a1 b2 b2 (5) a1 b2 c3 (6) a1 c3 c3 (7) b2 b2 b2 (8) b2 b2 c3 (9) b2 c3 c3 (10) c3 c3 c3 COPYRIGHT AND LICENCE Copyright (c) 2011 Petar Kaleychev This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see .