![]() |
|< 1 ... 6 7 8 9 10 11 12 ... 16 >| | ![]() |
156 Einträge, 16 Seiten |
1 2 3 4 5 6 7 8 9
#!/usr/bin/perl -l use strict; use warnings; my $i = '0' x @ARGV; do { print join ',', map {substr($i, $_, 1)?$ARGV[$_]:()} 0..$#ARGV; } while ($i =~ s/0(1*)$/"1"."0"x length("Å©")/e);
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
use strict;
use warnings;
use Data::Dumper;
my %pot=();
$"=';';
for(@ARGV){if(m#$"#){$".=int rand 10;redo}}# Damit der Inhalt von $" in keinem Element vorkommt
sub add
{
$pot{"@_"}=\@_;
for my $n(0..$#_){
my @n=@_;
splice @n,$n,1;
add(@n) unless exists $pot{"@n"}}
}
add(@ARGV);
$"=', ';# Für die Ausgabe wollen wir das schöner joinen
print "P(@ARGV) = {";
my $i=0;
for(values %pot){
print ", " unless 0==$i++;
print "{@$_}"}
print "}\n";
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
#!/usr/bin/perl
use strict;
# Eingabe
my @array = (1..9);
my %res;
warn time;
oneless(@array);
warn time;
# Formatierung der Ausgabe
# Key als Array umschreiben
my @res;
while(my($k) = each %res) {
push @res, [split /,/, $k];
}
# Ergebnisarray schoener sortieren
@res = sort {
my $r = @$a <=> @$b;
if ($r == 0) {
join(",", @$a) cmp join(",", @$b);
} else {
$r;
}
} @res;
require Data::Dumper;
print Data::Dumper->new([\@res],['res'])->Indent(0)->Dump, "\n";
sub oneless {
my @array = @_;
$res{ join",",@array } = 1;
return if !@array;
for my $i (0 .. $#array) {
oneless(map { $array[$_] } 0 .. $i-1, $i+1 .. $#array);
}
}
print"{@a[grep$a&2**$_,0..@a]}"while$a++<2**(@a=@ARGV)
print"{@a[grep$a&2**$_,0..@a]}"while$a++<2**(@a=@ARGV)
![]() |
|< 1 ... 6 7 8 9 10 11 12 ... 16 >| | ![]() |
156 Einträge, 16 Seiten |