AGB  ·  Datenschutz  ·  Impressum  







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

Kombinations - Möglichkeiten

Ein Thema von Nicolai1234 · begonnen am 8. Apr 2004 · letzter Beitrag vom 9. Apr 2004
Antwort Antwort
Nicolai1234

Registriert seit: 21. Feb 2004
1.008 Beiträge
 
Turbo Delphi für Win32
 
#1

Kombinations - Möglichkeiten

  Alt 8. Apr 2004, 20:27
Ich möchte gerne von zwei verschiedenen Werten alle Kombinationsmöglichkeiten haben.
Also, ich habe z.B zwei Werte. Jeder dieser Werte kann a oder b sein. Dann möchte ich gerne alle Kombinationen angezeigt bekommen also:
aa
ab
ba
bb
Gibt es dafür irgendwelche functionen?
Ich wollte so an die Sache herangehen:
Code:
var Teil1,Teil2:Array[1..2] of String;
Teil1[1] := 'a';
Teil1[2] := 'b';
Teil2[1] := 'a';
Teil2[2] := 'b';
1. Frage: Eine Möglich keit um 2 hoch 2 zu rechnen. Also etwas um eine Rechnung

Dann könnte man folgenden machen:
Delphi-Quellcode:
Anzahl der Möglichkeiten --> adm

var moeglichkeiten: array of string;

SetLength(dynArray, adm);
Wie kann ich jetzt diese Arrays füllen?
Bei 4 Möglichkeiten ist es noch einfach im Kopf zu machen aber bei 10 hoch 10, wäre es schon komplizierter, daher brauche ich eine Function, die so etwas kann (auch mit mehreren Möglichkeiten)!!!


Gibt es schon Functionen oder Tutorials???

Danke im Voraus
Nicolai

[edit=sakura] Zu langer Titel *G* Mfg, sakura[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#2

Re: Kombinationsmöglichkeiten

  Alt 8. Apr 2004, 20:31
Such mal mit Google nach Kombinatorik und Permutation, das sind die Fachbegriffe. Es sollten dabei einige Formeln bei rausspringen. Alternativ kannst du, wenn du hast, auch in einer mathematischen Formelsammlung unter den obigen Begriffen nachschlagen.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
DelphiDeveloper

Registriert seit: 9. Apr 2003
Ort: Köln
256 Beiträge
 
Delphi XE2 Enterprise
 
#3

Re: Kombinations - Möglichkeiten

  Alt 8. Apr 2004, 22:26
vieles aus der Kombinatorik laeßt sich mit der Fakultät berechnen
aber das hattest du in der schule bestimmt noch nicht.

1! =1
2! = 2 * 1 = 2
3! = 3 * 2 * 1= 6
n! = n! * (n-1)! * ... * 1 =

z.B 6 Schüler sollen zu viert in der Halle Fussball spielen.
Wieviele verschiedene Vierer Teams kann man daraus machen?



1) Antwort
( 6! / 2! ) / 4! = 15 verschiedene Teams

würde man jetzt noch sagen die Positionen spielten eine Rolle und nicht nur die Anzahl
wären es mehr (6! / 2!)

das ist im übrigen auch die formel für beim Lotto die Chance auf einen sechser zu berechnen
1 / ((49! / 43!) / 6!)
  Mit Zitat antworten Zitat
Benutzerbild von Seniman
Seniman

Registriert seit: 15. Sep 2003
Ort: Münster
98 Beiträge
 
#4

Re: Kombinations - Möglichkeiten

  Alt 8. Apr 2004, 23:04
Hallo Nicolai,

Potenzen kann man mit der Funktion Power aus der Unit Maths berechnen. Beachte, dass das Ergebniss als Real gespeichert wird.

Das Auflisten aller Möglichkeiten mit einer Anzahl von Zeichen und einer Anzahl von Stellen entspricht ziemlich genau dem Zählen. Ersetzt du in deinem Beispiel das a gegen 0 und b gegen 1, dann hast du in deinem Beispiel binär von 0 bis 3 gezählt.
Diesen Gedanken kannst du für dein Problem benutzten:
Nimm eine Schleife (for schleife über den Index des Arrays, denn du füllen willst, in deinem Fall 'moeglichkeiten').
Du fängst an un setzt die erste Variable des Arrays auf 'aaaaa....aaa', so viele a's wie du Stellen hast.
Bei jedem Schleifendurchlauf tust du nun folgendes: Nimm das letzte Zeichen und ersetzte es durch das in der Reihenfolge nächste, also a durch b, e durch f usw... Falls an dieser Stelle das letzte Zeichen in deiner Reihenfolge steht (wenn du 10 Zeichen hast wäre das das j), dann ersetzt du dieses Zeichen durch das erste Zeichen (a) und erhöhst dafür das Zeichen in der Stelle davor um einen. So wird 'aaa' zu 'aab' und 'aaj' wird zu 'aba'.
So bekommst du alle Möglichkeiten, die es gibt in geordneter Form in das Array rein.

Hoffe, ich hab mich verständlich ausgedrückt.

Grüße
Seniman
  Mit Zitat antworten Zitat
Benutzerbild von Meflin
Meflin

Registriert seit: 21. Aug 2003
4.856 Beiträge
 
#5

Re: Kombinations - Möglichkeiten

  Alt 9. Apr 2004, 12:12
ich habs anders gemacht nud zwar mit drei stringlists!
erstmal zum prinzip:
Code:
  |a b c d e
------------------
a |
b |
c |
d |
e |
jetzt bildest du einfach die kombinationen, indem du aus der ersten reihe die buchstaben
nach unten setzt:
Code:
  |a b c d e
------------------
a |aa ab ac ad ae
b |ba bb bc bd be
c |ca cb cc cd ce
d |da db dc dd de
e |ea eb ec ed ee
die ergebnisse setzt du jetzt in die linke spalte die dann so aussieht:
Code:
a
b
c
d
e
aa
ab
ac
ad
ae
ba
bb
bc
...
jetzt holst du wieder die buchstaben aus der ersten zeile usw usw.
die drei stringlists: 1. zeile, linke spalte und der ergebnisbereich!
kapiert? is ne recht einfache möglichkeit!
  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 17:06 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