Thread Operation auf alle kombination von Zeilen ? (6 answers)
Opened by Updecrator at 2005-11-24 11:41

pKai
 2005-11-24 18:37
#60401 #60401
User since
2005-02-18
357 Artikel
BenutzerIn
[default_avatar]
Ah, gut erkannt Crian, da hab ich wohl etwas flüchtig drübergelesen.
Es geht also nur bedingt um Permutationen, eher um Binomialkoeffizienten.
Aus der kombinatorischen Deutung derselben leite ich dann folgende Funktion ab, die mir die k-Teilmengen einer N-Menge (n unterschiedliche Objekte!) als Array-of-Array zurückliefert:
Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
use strict;
use warnings;
use Data::Dumper;

print Dumper(kTeilmengen([1..6], 3));

sub kTeilmengen {
my ($Menge, $k) = @_;
my $n = @$Menge;
return [$Menge] if $n <= $k; # eigentlich $n == $k
return [[]] if $k <= 0; # eigentlich $k == 0
my $e = shift @$Menge;
[
(map { [$e, @$_] } @{kTeilmengen([@$Menge], $k-1)}),
@{kTeilmengen([@$Menge], $k)}
];
}
I sense a soul in search of answers.

View full thread Operation auf alle kombination von Zeilen ?