![]() |
"ABCD" in allen möglichen Kombinationen
Hallo.
Und zwar meine Aufgabe ist es ein Programm zu schreiben, das nach der Eingabe eines n langen Strings alle möglichen Kombinationen ausspuckt, wie man "ABCD" schreiben könnte. Ich hab mich hingestezt und verschiedene Varianten ausprobiert, um ein System rauszubekommen, wie man am Besten alle Kombis erhält. Bei folgender Methode (die ich mir ausgedacht habe) bin ich stehen geblieben: A B C D A B D C A D B C A D C B A C D B A C B D C A B D C A D B C D A B C D B A C B D A C B A D B C A D B C D A <--- B D C A B D A C B D C A .... nur jetzt komme ich mit meiner Variante nicht mehr weiter. Nach meienm System müsste nun wieder BCDA kommen. Die shatten wir jedoch schon. Wie also kann ich das anders angehen bzw. wie spielt man alle möglichen Varianten am Besten durch? Einfach eine Quelltext mir anzuschaun wäre in dem Fall - meines Ermessens - nicht sinnvoll. Also kann mir wer nen Tipp geben wie ich das anpacken könnte? Mit freundlichen Grüßen Alex |
Re: "ABCD" in allen möglichen Kombinationen
Hallo,
Du könntest die Werte die Du bereits hast zuerst überprüfen, und nur dann hinzufügen, wenn der neue Wert noch nicht dabei ist. Das ist dann zwar kein perfektes Programm, aber ein perfektes würde Dir der Lehrer wohl nicht abkaufen. :zwinker: Zeig mal Deinen Quelltext, wie Weit Du bist, wenn Du hilfe möchtest. |
Re: "ABCD" in allen möglichen Kombinationen
Hallo Alex,
hier ein thread zum Thema mit vielen Code-Beispielen und weiterführenden Links: ![]() Grüße vom marabu |
Re: "ABCD" in allen möglichen Kombinationen
Das machst Du so :
1) Du markierst das Wort "Kombinationen" 2) Du drückst Strg und C 3) Du klickst "Suchen" unterhalb der Titel-Leiste 4) Du klickst das Eingabefeld "nach Begriffen suchen" 5) Du drückst Strg und V (oder tippst "Kombinationen" ein. 6) Du klickst "Suchanfrage absenden. Dann wirst Du unter den erste 10 Einträgen einen Verweis auf einen Beitrag finden, der das Problem behandelt. |
Re: "ABCD" in allen möglichen Kombinationen
nun binär zählt man:
0001 0010 0011 0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 dem entsprechend würde ich so vorgehen: ABCD ABDC ACBD ACDB ADBC ADCB BACD BADC BCAD BCDA BDAC BDCA CABD CADB CBAD CBDA CDAB CDBA DABC DACB DBAC DBCA DCAB DCBA wie hab ich das gemacht, nach welchem Prinzip bin ich vorgegangen und wie kann ein Programm das reproduzieren? |
Re: "ABCD" in allen möglichen Kombinationen
Hallo,
und danke für eure Antworten. Werde mich erstmal durch das Thema von Wikipedia arbeiten ( ![]() Ohne jedoch zu wissen, was in diesem Artikel steht, stelle ich noch eine Frage (auch wnen diese vll. in dem Artikel beantwortet wird): Wie spiele ich denn alle möglichen Kombinationen von Wörtern durch? Ich meine nach welchen Regeln? Da muss es doch etwas geben was zumindest eien gewissen Systematik dort rein bringt. Denn wenn ich weis wie ich alle Kombinationen durch spinne, und dies ien System hat, kann ich es wohl auch einfacher rekursiv als Algorythmus übersetzen. ----------------------------- €dit:/ Es wäre vll. auch möglich mit Hilfedes "Zuafalls" alle mäglichen Kombinationen herauszubekommen, aber die sist wohl ser unelegant und nicht gerade zuverlässig. Die Anzahl der Kombination wäre ja n-Fakultät (n!). ----------------------------- Nungut... jetzt muss ich mich erstmal wieder der Zellteilung, der DNA-Replikation und dem Aufbau der DNA witmen. Einen schönen Abend noch! =) mit freundlichen Grüßen Alex |
Re: "ABCD" in allen möglichen Kombinationen
bei einem Wort von 7 Buchstaben: (1234567)
1234567 1234576 1234657 1234675 1234756 1234765 1235467 1235476 1235647 1235674 1235746 1235764 1236457 1236475 1236547 1236574 1236745 1236754 1237456 1237465 1237546 1237564 1237645 1237654 124 und so weiter und so fort eine frage: "1234567" hat 7! verschiedene Möglichkeiten, während bei "Kindern" das n 2 mal vorkommt wodurch einige Kombinationen doch gleich sind wenn die wirklich unterschiedlich sein sollen, hab ich auch keine Idee mehr ansonsten hätte ich zunächst ignoriert, wie die einzelnen Buchstaben tatsächlich aussehen und systematisch alles agezeigt |
Re: "ABCD" in allen möglichen Kombinationen
Na so schwer ist das doch wieder auch nicht... Man braucht einmal einen Bitvektor mit den bereits benutzten Zahlen und muss das dann einfach immer wieder richtig setzen.
So kannst du prima durchpermutieren. Sobald man mehr als 11 Zeichen hat, reicht der Speicher allerdings nicht mal mehr annähernd. Schon 11 Zeichen sind kritisch. |
Re: "ABCD" in allen möglichen Kombinationen
Liste der Anhänge anzeigen (Anzahl: 1)
hab da was Programmiert für ein Wort mit 7 Buchstaben
Delphi-Quellcode:
var i1,i2,i3,i4,i5,i6,i7:Integer;
begin s:=edit1.text; for i1:=1 to 7 do for i2:=1 to 7 do if i1<>i2 then for i3:=1 to 7 do if (i1<>i3)and(i2<>i3) then for i4:=1 to 7 do if (i1<>i4)and(i2<>i4)and(i3<>i4) then for i5:=1 to 7 do if (i1<>i5)and(i2<>i5)and(i3<>i5)and(i4<>i5) then for i6:=1 to 7 do if (i1<>i6)and(i2<>i6)and(i3<>i6)and(i4<>i6)and(i5<>i6) then for i7:=1 to 7 do if (i1<>i7)and(i2<>i7)and(i3<>i7)and(i4<>i7)and(i5<>i7)and(i6<>i7) then listbox1.Items.add(s[i1]+s[i2]+s[i3]+s[i4]+s[i5]+s[i6]+s[i7]); |
Re: "ABCD" in allen möglichen Kombinationen
@ Dino
Ich denke das smit doplleten Buchstaben kann man vorerst vernachlässigen. Jediglich später beim "feintuning" kann man das überprüfen. Aber ich hab nicht ganz verstanden wie du das mit dem Binärsystem meinst. Binär kann ich zählen nur wie überträgst du das auf eien Zeichenfolge? mfg |
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz