Leser: 2
![]() |
![]() |
6 Einträge, 1 Seite |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
#!/usr/bin/perl use strict; use warnings; use Math::Combinatorics; my @list = qw(Alpha Beta Caesar Delta); for( 2 .. scalar(@list) ){ my $comb = Math::Combinatorics->new( count => $_, data => [@list], ); while( my @perms = $comb->next_combination ){ print join( ' ', @perms ), "\n"; } }
1
2
3
4
5
6
7
8
9
10
11
12
C:\>combinatorics.pl
Alpha Beta
Alpha Caesar
Alpha Delta
Beta Caesar
Beta Delta
Caesar Delta
Alpha Beta Caesar
Alpha Beta Delta
Alpha Caesar Delta
Beta Caesar Delta
Alpha Caesar Beta Delta
Wie frage ich & perlintro
brian's Leitfaden für jedes Perl-Problem1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
#!/usr/bin/perl use strict; use warnings; use Data::Dumper; my @words = qw/foo bar buz qiz/; my $words_cnt = @words; my @wanted = grep { @$_ >= 2; } map { my $i = $_; [ @words[grep { $i->[$_] > 0} 0..@$i-1] ]; } map { [ split //, sprintf "%0" . $words_cnt . "b", $_ ] } 1..(2**$words_cnt-1); warn Dumper \@wanted;
murphy+2007-08-13 15:51:21--Das Problem (ohne Beschränkung auf mindestens zwei Wörter pro Ausgabemenge) gab's auch mal als Rätsel der Woche: Wiki » Wissensbasis » Rätsel der Woche #2
![]() |
![]() |
6 Einträge, 1 Seite |