AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein "ABCD" in allen möglichen Kombinationen
Thema durchsuchen
Ansicht
Themen-Optionen

"ABCD" in allen möglichen Kombinationen

Ein Thema von -lx- · begonnen am 4. Okt 2006 · letzter Beitrag vom 10. Okt 2006
Antwort Antwort
Seite 1 von 3  1 23      
-lx-
(Gast)

n/a Beiträge
 
#1

"ABCD" in allen möglichen Kombinationen

  Alt 4. Okt 2006, 21:25
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
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#2

Re: "ABCD" in allen möglichen Kombinationen

  Alt 4. Okt 2006, 21:34
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.

Zeig mal Deinen Quelltext, wie Weit Du bist, wenn Du hilfe möchtest.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#3

Re: "ABCD" in allen möglichen Kombinationen

  Alt 4. Okt 2006, 21:37
Hallo Alex,

hier ein thread zum Thema mit vielen Code-Beispielen und weiterführenden Links: klick

Grüße vom marabu
  Mit Zitat antworten Zitat
Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.064 Beiträge
 
Delphi XE2 Professional
 
#4

Re: "ABCD" in allen möglichen Kombinationen

  Alt 4. Okt 2006, 21:40
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.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#5

Re: "ABCD" in allen möglichen Kombinationen

  Alt 4. Okt 2006, 22:09
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?
  Mit Zitat antworten Zitat
-lx-
(Gast)

n/a Beiträge
 
#6

Re: "ABCD" in allen möglichen Kombinationen

  Alt 4. Okt 2006, 22:11
Hallo,


und danke für eure Antworten. Werde mich erstmal durch das Thema von Wikipedia arbeiten (http://de.wikipedia.org/wiki/Kombinatorik).

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
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#7

Re: "ABCD" in allen möglichen Kombinationen

  Alt 4. Okt 2006, 22:37
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
  Mit Zitat antworten Zitat
Benutzerbild von 3_of_8
3_of_8

Registriert seit: 22. Mär 2005
Ort: Dingolfing
4.129 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: "ABCD" in allen möglichen Kombinationen

  Alt 4. Okt 2006, 22:44
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.
Manuel Eberl
„The trouble with having an open mind, of course, is that people will insist on coming along and trying to put things in it.“
- Terry Pratchett
  Mit Zitat antworten Zitat
dino

Registriert seit: 15. Jul 2006
Ort: Bad Münstereifel
627 Beiträge
 
Delphi 5 Professional
 
#9

Re: "ABCD" in allen möglichen Kombinationen

  Alt 4. Okt 2006, 22:54
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]);
Angehängte Dateien
Dateityp: exe project1_833.exe (308,0 KB, 32x aufgerufen)
  Mit Zitat antworten Zitat
-lx-
(Gast)

n/a Beiträge
 
#10

Re: "ABCD" in allen möglichen Kombinationen

  Alt 4. Okt 2006, 23:07
@ 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
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 3  1 23      


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 16:04 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