Schrift
[thread]10887[/thread]

Alle Varianten von x Arrays ermitteln



<< |< 1 2 >| >> 14 Einträge, 2 Seiten
marky
 2007-11-24 17:06
#102959 #102959
User since
2003-08-15
215 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

ich habe gerade eine Aufgabe zu der ich noch keine vernünftige Lösung gefunden habe, es geht um folgendes - ich habe x Arrays mit jeweils unterschiedlicher Länge

A1 : grün rot schwarz
A2 : s m l xl
A3 : 100 120 140 160 170 180
usw.

jetzt suche ich nach einem Algo der mir alle möglichen Varianten mit jeweils einem Wert des Arrays zurückgibt, das erste wäre

grün s 100
grün s 120
...
schwarz xl 180

das ganze sollte wie gesagt, allgemeingültig sein.

Ich habe den Verdacht, dass das ein gängiges Algo-Problem ist und es dafür bestimmt einen gibt, da ich aber kein Informatik studiert habe, bin ich bei solchen Dingen immer sehr schlecht :-)

Hat jemand einen Ansatz für mich.
renee
 2007-11-24 17:29
#102960 #102960
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Code (perl): (dl )
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 Set::CrossProduct;

my @a1 = qw/grün rot schwarz/;
my @a2 = qw/s m l xl/;
my @a3 = qw/ 100 120 140 160 170 180/;

my @sets = (\@a1, \@a2, \@a3 );

my $set = Set::CrossProduct->new( \@sets );
my $tuples = $set->combinations;

for my $tuple ( @$tuples ){
    print "@$tuple\n";
}
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
lichtkind
 2007-11-24 18:34
#102961 #102961
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
ach perl 5 gibts ja auch noch :)

in perl 6 ginge das ca so

Code (perl): (dl )
for (@a1 X @a2 X @a3) {say @^a} ;
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
ptk
 2007-11-24 21:06
#102964 #102964
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Müsste das nicht @^_ heißen?
lichtkind
 2007-11-24 21:14
#102965 #102965
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
wenn schon dann @$_, das ginge auch aber meine fassung geht auch, da sie die neuen autonamed parameters mit der dach twigil benutzt
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
ptk
 2007-11-24 23:06
#102966 #102966
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Erklär mal.
lichtkind
 2007-11-24 23:40
#102967 #102967
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
was von beiden?

also @$_ muss es sein weil ja ein array übergeben wird. es gibt in perl 6 kein autoflatening von arrays es sei du forcierst den kontext, was manche operatoren tun aber im $_ kommt ein Array, mit einer möglichen kombination von 3 elementen aus den 3 arrays, der ja wie bekannt dereferenziert werden muss, damit say den ganzen array auf einmal ausgeben kann.

aber du wolltest sicher das mit den $^a wissen :) Da prinzip entstammt dem perl 5 sort befehl, gilt aber nun für jeden Block. Wie du weisst kann man sort auch umprogrammieren indem man eine Vergleichsroutine schreibt in der man $a und $b als die aktuell zu vergleichenden Werte bekommt und ein ergebnis liefern muss wie es auch <=> tut. Diese beiden Parameter würden in Perl 6 $^a und $^b heissen und sind die automatisch generierten namen für 2 anonyme parameter des Blocks. Du kannst auch $^x $^y $^z benutzen und wirst in x den ersten parameter haben weil x im alphabet vor den anderen beiden kommt.

Ich hoffe das war verständlich :)
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
marky
 2007-11-26 13:58
#103020 #103020
User since
2003-08-15
215 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

danke habe ich gebraucht, da ich aber noch mehr machen muss, als nur die Kombinationen auszugeben, wollte ich den Code gerne selber machen. Der Modulcode ist mir etwas zu kompliziert.

Gibt es dafür einen deutschen Begriff, dann kann ich besser danach suchen, danke.
renee
 2007-11-26 13:59
#103021 #103021
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Kreuzprodukt...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
lichtkind
 2007-11-26 15:09
#103029 #103029
User since
2004-03-22
5681 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
marky: was mitte war daran kompliziert das modul zu benutzen?
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
<< |< 1 2 >| >> 14 Einträge, 2 Seiten



View all threads created 2007-11-24 17:06.