Thread permutation (31 answers)
Opened by esskar at 2006-09-11 12:30

Thorium
 2006-09-13 17:09
#69643 #69643
User since
2003-08-04
232 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hier, ich hab auch noch einen Vorschlag; auch wenn ich im Benchmark damit Canchenlos bin ;):

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
sub fbhp {
    my $string = shift;
    my $seperator = shift || '-';

    my @elements = split /$seperator/, $string;
    my @status;
    my $count = $#elements;
    push @status, 0 for (0..$count); #kann man sich auch sparen
    my @ret;

    for (my $i = 1; $i <= 2 ** $count; ++$i) {
        my $this = $elements[0];
        for (my $j = 0; $j < $count; ++$j) {
            $this .= $seperator if ($status[$j]);
            if ($i % 2 ** $j == 0) {
               $status[$j] = (++$status[$j]) % 2;
            }
            $this .= $elements[$j+1];
        }
        push @ret, $this;
    }
}


Benchmark wie oben aber:
Code: (dl )
'Version 3' => sub { fbhp($str) },


Code: (dl )
1
2
3
4
            Rate Version 1 Version 3 Version 2
Version 1 62.4/s -- -92% -99%
Version 3 754/s 1114% -- -83%
Version 2 4490/s 7091% 443% --
Per|li|nist der; -en, -en <zu ↑...ist>: a) Anhänger, Vertreter der radikalen Perlinisten die Perl als die einzig wahre Sprache ansehen; b) Mitglied einer perlinistischen Community.

View full thread permutation