Problem & Herausforderung

Neue Frage »

RomanW Auf diesen Beitrag antworten »
Problem & Herausforderung
Hallo Leute,

weiß jemand ob es eine Formel für folgendes Problem gibt?
Ich habe ein System mit zb. 4 aus 7 Möglichkeiten. Die Anzahl der Möglichkeiten kann man ja recht einfach mit dem Binomialkoeffizenten ermitteln, was mir aber Probleme bereitet ist alle möglichen Kombinationen herauszubekommen,
zum Beispiel: (1,2,3,4), (1,2,3,5), ..., (1,2,5,6), (1,2,5,7), ... usw.

Wäre für jede Hilfe dankbar!

Grüße Roman
AD Auf diesen Beitrag antworten »
RE: Problem & Herausforderung
Formel ist das falsche Wort. Was du suchst, ist ein Algorithmus, der dir sämtliche Kombinationen erzeugt.
Tobias Auf diesen Beitrag antworten »

Ich machs mal ganz platt für 4 aus 7:

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:

Für i = 1, 2, ..., ,7
  Für j = 1, 2, ..., 7
    Für k = 1, 2, ..., 7
      Für l = 1, 2, ..., 7
         Gib aus: (i, j, k, l)

Sciencefreak Auf diesen Beitrag antworten »

Also da gibt er dir auch folgendes aus 1;1;1;1 und das ist sicher nicht das Ziel. Da musst du i im Intervall 1 bis 4
j im Intervall i+1 bis 5
k im Intervall j+1 bis 6
l im Intervall k+1 bis 7

Somit hast du dann alle Lösungen schön aufgeschrieben. Weiß ja nicht mit welchem programm du das proggen willst, aber sollte eigentlich nicht schwer sein. Must eventuell vorher eine Hilfsvaiable einführen für i+1, wenn das Pragramm das nicht im eigentlichen Befehl mitmacht, aber den Befehl for ... sollte das Programm schon haben

Also für beliebige Auswahlen also nicht auf 7(n) und 4(k) festgemacht kannst du einfach folgendes verwenden.
Erst mal kannst du eine Liste (a) erstellen, wobei diese k elemente enthält, für welche gilt das erste Element ist n-k+1, das zweite dann n-k+2...
Und dann gehst du am besten wie oben vor, wobei du das ganze dann am besten auch in einer Liste (b) speicherst.
Also ich nehme jetzt mal die Namen der Befehle wie bei meinem TR

for x1,1,a[1]
x1->b[1]
for x2,b[1],a[2]
x2->b[2]
for x3,b[2],a[3]
x3->b[3]
...
Das andere Problem ist, dasss du hierbei den gleichen Befehl einfach durch kopieren einfügst, aber ich kenne zumindest für die Sprache auf meinen Taschenrechner keine andere Variante, aber ich glaube die bringt auch nicht, wenn du mehr als 20 für n nimmst, denn dann werden die Zahlen sehr groß und die Anzahl der Werte ist wahrscheinlich nicht mehr sehr sinnvoll für dich
AD Auf diesen Beitrag antworten »

Falls du C bevorzugst, hier mal die allgemeine Variante für Kombinationen:
Neue Frage »
Antworten »



Verwandte Themen

Die Beliebtesten »
Die Größten »
Die Neuesten »