AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

00, 01, 10, 11....Kombinationen

Ein Thema von Telefonkabel · begonnen am 2. Jul 2007 · letzter Beitrag vom 2. Jul 2007
Antwort Antwort
Telefonkabel

Registriert seit: 15. Jan 2007
94 Beiträge
 
#1

00, 01, 10, 11....Kombinationen

  Alt 2. Jul 2007, 15:34
Hy!
Ich möchte aus einer gegebenen Menge, alle Kombinationsmöglichkeiten ermitteln.
Also, wenn ich z.B. meinem Programm eine 3 übergeben, möchte ich, dass er alle Kombinationen folgender Art und Weise ermittelt:
000
001
100
.
.
.
etc.

bei 4:
0000
1000
.
.
.usw.


Wie macht man sowas?
Wäre toll, wenn ihr mit helfen könntet.


MfG
Telekab.
  Mit Zitat antworten Zitat
Benutzerbild von Phoenix
Phoenix
(Moderator)

Registriert seit: 25. Jun 2002
Ort: Hausach
7.639 Beiträge
 
#2

Re: 00, 01, 10, 11....Kombinationen

  Alt 2. Jul 2007, 15:38
Hrm.

Also ich würde hergehen und in einer For-Schleife von i = 0 bis 2^n (n ist die Eingegebene Zahl) durchlaufen lassen.

Dann müssten nur noch für alle i's das Bitmuster ausgegeben werden. Sowas wie BitToString müsste recht easy zu bauen sein.
Sebastian Gingter
Phoenix - 不死鳥, Microsoft MVP, Rettungshundeführer
Über mich: Sebastian Gingter @ Thinktecture Mein Blog: https://gingter.org
  Mit Zitat antworten Zitat
Benutzerbild von Ultimator
Ultimator

Registriert seit: 17. Feb 2004
Ort: Coburg
1.860 Beiträge
 
FreePascal / Lazarus
 
#3

Re: 00, 01, 10, 11....Kombinationen

  Alt 2. Jul 2007, 15:42
Sowas nennt sich Permutationen. Und wenn man weiß, wonach man suchen muss, findet man das hier aus der CL: http://www.delphipraxis.net/internal...ct.php?t=74277

Mfg Ultimator
Julian J. Pracht
  Mit Zitat antworten Zitat
Der_Unwissende

Registriert seit: 13. Dez 2003
Ort: Berlin
1.756 Beiträge
 
#4

Re: 00, 01, 10, 11....Kombinationen

  Alt 2. Jul 2007, 16:18
Zitat von Phoenix:
Also ich würde hergehen und in einer For-Schleife von i = 0 bis 2^n (n ist die Eingegebene Zahl) durchlaufen lassen.

Dann müssten nur noch für alle i's das Bitmuster ausgegeben werden. Sowas wie BitToString müsste recht easy zu bauen sein.
Man kann auch gleich (für dieses Beispiel) einen binären Zähler bauen, so schwer ist das ja nun nicht. Der String hat eine feste Länge (eben n). Du fängst bei n*0 an und addierst 1, dass ganze machst 2^n - 1 mal (die erste Belegung n*0 hast Du ja schon!). Jetzt musst Du nur schauen, ob das Array an der aktuellen Stelle schon 1 ist, wenn ja, dann wird es 0 gesetzt und zum nächst höheren Bit wird 1 addiert.

Gruß Der Unwissende
  Mit Zitat antworten Zitat
Benutzerbild von Corpsman
Corpsman

Registriert seit: 8. Nov 2005
Ort: nähe Stuttgart
981 Beiträge
 
Delphi XE2 Professional
 
#5

Re: 00, 01, 10, 11....Kombinationen

  Alt 2. Jul 2007, 16:56
das stimmt so aber nicht | Permutationen | einer N stelligen Binärzahl ist <> 2^N !!
Uwe
My Sitewww.Corpsman.de

My marble madness clone Balanced ( ca. 70,0 mb ) aktuell ver 2.01
  Mit Zitat antworten Zitat
TheAn00bis

Registriert seit: 7. Jun 2004
386 Beiträge
 
#6

Re: 00, 01, 10, 11....Kombinationen

  Alt 2. Jul 2007, 17:16
Bitmasken!

Hab das mal in Java so gemacht:

Code:
    private void test()
    { 
        int max = 4;
       
        for(int i = 0; i < (1 << max); i++)
        {
            for (int j = 0; j < max; j++)
            {
                if ((i & (1 << j)) != 0)
                {
                    System.out.print(j+1);                  
                }
            }
                System.out.println();
        } 
    }
Die Ausgabe wäre dann:

Zitat:
1
2
12
3
13
23
123
4
14
24
124
34
134
234
1234
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.858 Beiträge
 
Delphi 11 Alexandria
 
#7

Re: 00, 01, 10, 11....Kombinationen

  Alt 2. Jul 2007, 17:38
Allgemein: Kombinatorik
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz