Suche Permutationsgenerator

Neue Frage »

taugenix Auf diesen Beitrag antworten »
Suche Permutationsgenerator
Hi wie der titel schon sagt, suche ich einen Perm.Generator.
Habe schon ein bisschen im netzt gestöbert aber leider nur sehr beschränkte software finden können. Folgendes Problem soll gelöst werden:

Es sollen alle möglichen Kombination des Zahlentripplets (x, y, z) mit x,y,z <6 ausgegeben werden. Mit meinen Programmiergrundkenntnissen komme ich da nicht besonders weit, habe auch keine ahnung von rekursiven funktionen usw. deswegen suche ich ne software die das erledigen kann.

Gruß taugenix

edit:falls jemand nen algorithmus kennt, wär ein wenig quasicode auch ok.Es handelt sich hier nicht um eine Hausaufgabe oder ähnliches. Ich brauche das zur Auswertung eines physikalischen versuchs.
taugenix Auf diesen Beitrag antworten »

so,habs jetzt mal per hand durchpermutiert für x,y,z <=6. Ich komme auf 325 kombinationen. Kann mir wenigstens jemand sagen wie ich prüfen kann ob die anzahl der kombinationen stimmt?
Nutzername Auf diesen Beitrag antworten »

Ich verstehe nicht ganz, was du machen willst, hast du an so etwas gedacht:
111; 112; 113; ...; 121; 122; ...; 211; ...; 666 ?
Außerdem ist nicht klar ob gilt x,y,z<6 oder <=6 und was die kleinstmögliche Zahl ist.
Sollte meine Interpretation oben richtig sein, gibt es 216(6*6*6) Möglichkeiten.
Programmiertechnisch würden es hierfür verschachtelte Schleifen tun.
taugenix Auf diesen Beitrag antworten »

es gilt x,y,z element von N_0. Es fängt also bei 0,0,0 an und hört bei 6,6,6 auf.
Habs wie gesagt per hand bereits hinbekommen
Nutzername Auf diesen Beitrag antworten »

Falls so kombiniert wird, wie vorhin von mir vermutet(die 0 jetzt mitgezählt), gibt es 7³=343 Möglichkeiten.
Programmiert könnte das so aussehen:
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
//Programmiersprache: C#
            int counter = 0;
            for (int i = 0; i <= 6; i++)
            {
                for (int j = 0; j <= 6; j++)
                {
                    for (int k = 0; k <= 6; k++)
                    {
                        counter++;
                        Console.WriteLine(counter.ToString()+":  "+i.ToString()+j.ToString()+k.ToString());
                    }
                }
            } 
taugenix Auf diesen Beitrag antworten »

danke,ich glaub das könnte es sogar sein. ich versuch das mal in meinem alten borland umzusetzen smile
 
 
Nutzername Auf diesen Beitrag antworten »

Jemand, der noch Delphi/Turbopascal nutzt Freude
Damit habe ich angefangen, bin gerade dabei mich in eine modernere Sprache einzuarbeiten.
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
//Delphi:
var i,j,k,counter:integer;
begin
  counter:=0;
  for i:=0 to 6 do
  begin
    for j:=0 to 6 do
    begin
      for k:=0 to 6 do
      begin
        counter:=counter+1;
        WriteLn(IntToStr(counter)+':  '+IntToStr(i)+IntToStr(j)+IntToStr(k));
      end;
    end;
  end;
  ReadLn;
end.

Oder alternativ statt des WriteLn eine Ausgabe in ein Memo: memo.lines.add();
Ausgabe in TP: WriteLn(counter,': ',i,j,k);
Dopap Auf diesen Beitrag antworten »

Kombinationen von 000 bis 666 sind bei mir Kombinationen mit Zurücklegen. (dreifacher "Würfelwurf" mit 7 "Flächen")
wobei die Tripel monoton sind, sonst sind das Variationen.

mit n=7 und k=3



Das Programm muss also in einer inneren Schleifen jeweils beim Index der Äusseren starten.
Dopap Auf diesen Beitrag antworten »

dein ursprünglicher Titel war ja: Permutationsgenerator, das wäre aber wieder ein ganz andere Geschichte...
Beim nächsten mal erst überlegen:
was sind Kombinationen ?
was sind Variationen ?
was sind Permutationen ?

ja klar, umgangssprachlich wird das alles unter Kombinationen subsummiert.
taugenix Auf diesen Beitrag antworten »

sry,hiermit entschuldige ich mich ganz offiziell für mein Unwissen und bedanke mich gleichzeitig für die Antworte smile
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »