Entwickler-Ecke

Sonstiges (Delphi) - Schleifenverschachtelung für Lottoziehungskombinationen


Avanaq - So 18.03.07 20:20
Titel: Schleifenverschachtelung für Lottoziehungskombinationen
Suchte eigentlich die Rubrik "Delphi für Dummies" … obwohl, eigentlich ist nicht Delphi das Problem, sondern mein IQ. Also müsste ich eigentlich die "Rubrik für Dummies" suchen, die es hier natürlich nicht gibt (wer will schon Dummies?*g). Hm.
Jetzt mein Anliegen: Eigentlich teste ich gerade ein bisschen DB-Programmieren (Sybase) und damit es Spaß macht, schreibe ich ein Lottoprogrämmchen.
Dabei bin ich leider auf die -für mich nicht so leicht lösbare- Problematik gestoßen, alle 13,98 Mio Kombis zu generieren (ich meine nicht die Fakultätenrechnung, wie man auf die 13,98 Mio kommt). Also alle Kombinationen (ohne Doppelungen!) die gezogen werden könnten, mit möglichst einfacher Schleifenverschachtelung (schnell).
Wer ist so genial?

LG
Avanaq


Moderiert von user profile iconChristian S.: Topic aus Gemeinschaftsprojekte verschoben am So 18.03.2007 um 19:23


Christian S. - So 18.03.07 20:23

Hallo,

bitte ändere den Titel des Topics, da er wenig über das eigentlich Thema verrät. Hier der entsprechende Absatz aus den Richtlinien [http://www.entwickler-ecke.de/richtlinien.html]:

1.2 Beiträge:
Bitte formuliere den Betreff Deiner Beiträge so, dass andere Mitglieder anhand dieser bereits das eigentliche Thema festmachen können. Beiträge wie etwa "Eine Anfängerfrage" oder "Weiß jemand, wie das geht?" lassen den Leser im Unklaren darüber, was das Thema der Diskussion ist.[...]


Einfach oben bei Deinem ersten Beitrag auf user defined image oder user defined image klicken und den Titel ändern. Danke Dir!

Viele Grüße,
Christian


Avanaq - So 18.03.07 21:31

Huhu.

Besser so?

LG
Avanaq


Narses - So 18.03.07 23:55

Moin und :welcome: im Forum!

Schau mal nach Suche in: Delphi-Forum, Delphi-Library PERMUTATION, das ist das, was du suchst. ;) Evtl. auch etwas "gröber" suchen... Suche bei Google PERMUTATION

cu
Narses


Avanaq - Mo 26.03.07 18:17

Hallo!

Danke für eure Bemühungen!

Nachdem ich mir einen Ast gesucht habe, beschloss ich völlig entnervt doch mal mein eigenes Hirn (sofern vorhanden) zu bemühen.

Hier die Lösung:(wundert euch nicht über die 48 von z1... das war die härteste Nuss)

LG
Avanaq



Delphi-Quelltext
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:
 
for z6 := 1 to 43 do
  begin
    for z5 := z6+1 to 44 do
      begin
        for z4 :=z5+1 to 45 do
          begin
            for z3 := z4+1 to 46 do
              begin
                for z2 := z3+1 to 47 do
                  begin
                    for z1:= z2+1 to 48 do
                      begin
                        inc(LCount);
                      end;
                    inc(LCount);
                  end;
                inc(LCount);
              end;
            inc(LCount);
          end;
        inc(LCount);
      end;
   inc(LCount);
  end;