Thread Variation/Kombination aufteilen und verteilt kalkulieren
(15 answers)
Opened by styx-cc at 2018-07-18 02:03
Hallo Forum!
Ich hab das Problem abschließend gelöst und wollte euch noch die Lösung mitteilen: 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 #!/usr/bin/perl use v5.10; use strict; use warnings; use Data::Dumper; my $series = [3, 9, 7, 3, 13, 5, 45]; my $permut = 1; $permut *= $_ for (@$series); my $chunks = 4;#int($permut/100_000_000); $chunks = $chunks < 1 ? 1 : $chunks; my $chunk_size = int($permut / $chunks); my $chunk_start = 1; my $chunk_end = $chunk_size; say join ' ', @$series; say "Permutations: $permut\tChunk size:\t$chunk_size\tChunks:\t$chunks"; my @chunk_ranges; while ($chunk_end <= $permut) { push @chunk_ranges, [ [$chunk_start, cpns($series, $chunk_start)], [$chunk_end, cpns($series, $chunk_end)] ]; $chunk_start += $chunk_size; $chunk_end += $chunk_size; } #last chunk_end contains the rest $permut/$chunk_size gives, #consequential it equals the amount of permutations-1 $chunk_ranges[-1]->[-1] = [$permut, cpns($series, $permut-1)]; print Dumper \@chunk_ranges; sub cpns { convert_positional_notation_systems(@_) }; sub convert_positional_notation_systems { my $bases = shift; my $quotient = shift; my $rest; my @result; for my $base (reverse @$bases) { $rest = $quotient % $base; $quotient = int($quotient / $base); push @result, $rest; last if $quotient == 0; } @result = reverse @result; return join ' ', @result; return \@result; } Ausgabe: Code: (dl
)
1 3 9 7 3 13 5 45 Man kann am Anfang des Code ein Stellenwertsystem mit beliebig dynamischen Basen festlegen und diese anschließend in beliebig viele Chunks aufteilen und sich diese Dezimal sowie im definierten Stellenwertsystem ausgeben lassen. Ich werde im Endeffekt Muffis vorschlag aufgreifen und deutlich mehr Häppchen erstellen als CPUs vorhanden sind und so lange rechnen lasssen wie es etwas zu tun gibt. Lieben Gruß Last edited: 2020-06-01 03:02:40 +0200 (CEST) Pörl.
|