Thread Gibt es für Zeile x einer Matrix andere Zeilen die ein Subset dieser Zeile sind? (11 answers)
Opened by leo11 at 2010-10-19 15:06

topeg
 2010-10-19 18:26
#142054 #142054
User since
2006-07-10
2611 Artikel
BenutzerIn

user image
So nun habe ich verstanden was du machen willst, das geht durchaus kürzer:
Code (perl): (dl )
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#!/usr/bin/perl
use strict;
use warnings;
use Data::Dumper;

my @index=();

my $pos=0;
while(my $line=<DATA>)
{
  chomp($line);
  next unless($line);
  (my $compare=$line)=~s/^.+?\s+//;
  $compare=~s/\s+$//;

  push(@index,[$pos,$line,[split(/\s+/,$compare)]]);
  $pos++;
}

for my $test (@index)
{
  print "TEST:     $test->[1]\n";
  for my $comp (@index)
  {
    # mindestens ein Zahl
    next unless( grep{$_ ne '-'}@{$comp->[2]} );

    # nicht die selbe Zeile
    next if($test->[0] == $comp->[0]);

    my $cnt=0;
    for my $p (0..$#{$test->[2]})
    {
      my $sval=$test->[2]->[$p];
      my $dval=$comp->[2]->[$p];
      # verkürzte Bedingung :-)
      $cnt++ if($dval eq $sval || $dval eq '-');
    }

    print "  SUBSET: $comp->[1]\n" if($cnt==@{$test->[2]})
  }
}

__DATA__
row18 - 0 0 1 0 0 - - - 0 0 - - - - - - - - - - - - - - - -
row19 - 0 0 0 - - - - 1 0 0 - - - - - - - - - - - - - - - -
row20 - 0 0 - - - - 1 - 0 0 - - - - - - - - - - - - - - - -
row21 - 0 0 - - - - - - 0 0 - - - - 1 0 0 - - - - - - - - -
row22 - 0 0 - - - - - - 0 0 - - - - 0 - - - 1 - - - - - - -
row23 - 0 0 - - - - - - 0 0 - - - - - - - - - 1 - - - - - -
row24 - 0 0 - - - - - - 0 0 - - - - - - - - - - 1 0 0 - - -
row25 - 0 0 - - - - - - 0 0 - - - - - - - - - - 0 - - - 1 -
row26 - 0 0 - - - - - - 0 0 - - - - - - - - - - - - - - - 1
row27 - 0 0 - - - - - - 1 0 0 - - - - - - - - - - - - - - -
row28 - 0 0 - - - - - - 0 - - - - 1 - - - - - - - - - - - -
row29 - 0 0 - - - - - - - - - 1 - - - - - - - - - - - - - -
row30 1 0 0 - 1 - - - - 0 0 - - - - - - 1 - - - - - - - - -
row31 1 0 0 - 1 - - - - 0 0 - - - - - - - - - - - 1 - - - -
row32 1 0 0 - 1 - - - - 0 0 - - - - - - 1 - - - - 1 - - - -
row33 1 0 0 - - - 1 - - 0 0 - - - - - - - - - - - - - - - -
row34 1 0 0 - - - - - - 0 0 - - - - - - - 1 - - - - - - - -
row35 1 0 0 - - - - - - 0 0 - - - - - - - - - - - - - 1 - -
row36 1 0 0 - - - - - - 0 0 - - - - - - 1 - - - - 1 - - - -
row37 1 0 0 - 1 - - - - - 1 - - - - - - 1 - - - - - - - - -
row38 1 0 0 - 1 - - - - - 1 - - - - - - - - - - - 1 - - - -
row39 1 0 0 - 1 - - - - - 1 - - - - - - 1 - - - - 1 - - - -
row40 1 0 0 - - - 1 - - - 1 - - - - - - - - - - - - - - - -
row41 1 0 0 - - - - - - - 1 - - - - - - - 1 - - - - - - - -
row42 1 0 0 - - - - - - - 1 - - - - - - - - - - - - - 1 - -
row43 1 0 0 - - - - - - - 1 - - - - - - 1 - - - - 1 - - - -
row44 1 0 0 - - - - - - - - 1 - 1 - - - - - - - - - - - - -
row45 - 1 - - - - - - - 1 0 0 - - - - - - - - - - - - - - -
row46 - 1 - - - - - - - 0 - - - - 1 - - - - - - - - - - - -
row47 - 1 - - - - - - - - - - 1 - - - - - - - - - - - - - -
row48 - - 1 - - - - - - 1 0 0 - - - - - - - - - - - - - - -
row49 - - 1 - - - - - - 0 - - - - 1 - - - - - - - - - - - -
row50 - - 1 - - - - - - - - - 1 - - - - - - - - - - - - - -
row51 - 1 0 - - - - - - - - - 0 - - - - - - - - - - - - - -
row52 - 0 1 - - - - - - - - - 0 - - - - - - - - - - - - - -
row53 - 1 0 - - - - - - - - - - - 0 - - - - - - - - - - - -
row54 - 0 1 - - - - - - - - - - - 0 - - - - - - - - - - - -
row55 - 1 0 - - - - - - 0 0 - - - - - - - - - - - - - - - -
row56 - 0 1 - - - - - - 0 0 - - - - - - - - - - - - - - - -

View full thread Gibt es für Zeile x einer Matrix andere Zeilen die ein Subset dieser Zeile sind?