Kombinationen von Objekten bilden

Status
Nicht offen für weitere Antworten.
M

mike

Gast
habe folgendes Problem:
ich muss aus einer vorgegebenen Anzahl von Objecten alle möglichen n-Kombinationen bilden, d.h. zum Beispiel aus der Menge M={a,b,c} mit n=2 erhalte ich K={ab,ac,bc}.
oder als komplizierterer Beispiel M={a,b,c,d,e} und n=3 -> K={abc,abd,abe,acd,ace,ade,bcd,.....}

Wollte fragen, ob jemand ein Algorithmus kennt, dass diese Kombinationen in Abhängigkeit von M und n ausrechnet, oder ob jemand ein Programm/Link kennt wo man Source-Code zu ähnlichem Problem bekommen kann

P.S. es geht mir nicht um die Anzahl der möglichen Kombinationen, die ist nämlich einfach ausrechenbar

Würde mich freuen, wenn mir jemand damit helfen könnte :?

Gruß mike
 
B

Beni

Gast
Wie wäre es mit selber schreiben?

Aber mir Rekursion sollte man sowas leicht lösen können.
Code:
public void create( int n, Object[] elements ){
  int[] selection = new int[n];
  create( 0, n, 0, selection, elements );
}

public void create( int index, int n, int deep, int[] selection, Object[] elements ){
  if( deep == n ){
    [...]
  }
  else{
    for( int i = index, m = elements.length; i < m; i++ ){
      selection[ deep ] = i;
      create( i+1, n, deep+1, elements );
    }
  }
}

Und damit sind deine Hausaufgaben wohl gelöst, hm?

mfg Beni
 
M

mike

Gast
Danke für die schnelle Antwort, werds mal ausprobieren.
Es ist keine Hausaufgabe, wirklich nicht :!:

gruß mike
 
M

mike

Gast
@Beni

sitze schon über ne stunde an deinem Algorithmus und kann es immer noch nicht verstehen :?

kannst du ein paar Erklärungen dazu angeben?
Ausserdem fehlt in der letzten Programmzeile create( i+1, n, deep+1, elements ); der selection-Parameter

gruß mike
 
B

Beni

Gast
mike hat gesagt.:
Ausserdem fehlt in der letzten Programmzeile create( i+1, n, deep+1, elements ); der selection-Parameter

:oops: einfach so tun, als wäre er dort

Die Idee ist: man wählt ein Element mit dem Index i0. Dann wählt man ein zweites Element mit dem Index i1, wobei i0 < i1 ist. Und so weiter...

Und dann wählt man einfach alle Kombinationen, die diese Bedingung erfüllen, indem man mehrere Schlaufen ineinander verschachtelt.

Um das verschachteln jetzt aber nicht "von Hand" schreiben zu müssen, hab ich eine Rekursion gebaut, eine Methode die sich selbst aufruft.

Füg noch ein paar "System.out.println"'s hinzu, damit du siehst, wo hier was wann aufgerufen wird, und lass den Code mal laufen:
Code:
public class Main {
	public static void main(String[] args) {
		String[] elements = new String[]{ "a", "b", "c", "d", "e" };
		
		create( 3, elements );
	}

	public static void create(int n, Object[] elements) {
		int[] selection = new int[n];
		create(0, n, 0, selection, elements);
	}

	public static void create(int index, int n, int deep, int[] selection, Object[] elements) {
		if (deep == n) {
			for (int i = 0; i < n; i++)
				System.out.print(elements[ selection[i] ]);
			System.out.println();
		} else {
			for (int i = index, m = elements.length; i < m; i++) {
				selection[deep] = i;
				create(i + 1, n, deep + 1, selection, elements);
			}
		}
	}
}

mfg Beni
 
M

mike

Gast
danke sehr, sehe nun wie es funktioniert, werd jetzt mein brain etwas dampfen lassen :)
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
S Rekursive Kombinationen Java Basics - Anfänger-Themen 6
R0m1lly Kombinationen aus int array rekursiv Java Basics - Anfänger-Themen 2
C alle möglichen Kombinationen zweier Ziffern auf drei / vier / und 'n" Stellen Java Basics - Anfänger-Themen 11
C Array in allen Kombinationen ausfüllen Java Basics - Anfänger-Themen 17
S Summe aus Kombinationen /permutationen einer Liste mit einer Obergrenze Java Basics - Anfänger-Themen 10
D Alle möglichen Kombinationen in einem Array ausgeben Java Basics - Anfänger-Themen 2
L Best Practice Alle Kombinationen aus Listenelementen, Anzahl Listen unterschiedlich Java Basics - Anfänger-Themen 6
D Rekursiv Kombinationen ausgeben klappt nur bei einer Wiederholung Java Basics - Anfänger-Themen 4
Phash Kombinationen erzeugen Java Basics - Anfänger-Themen 4
L Kombinationen nur mit if/while erstellen Java Basics - Anfänger-Themen 2
B Kombinationen 3-dim Array Java Basics - Anfänger-Themen 5
D Kombinationen Quadratisches Array Java Basics - Anfänger-Themen 11
F 4 STrings in allen Kombinationen miteinander kombinieren Java Basics - Anfänger-Themen 2
F Kombinationen mit 3 Würfeln Java Basics - Anfänger-Themen 6
-horn- Alle Kombinationen von Zahlenreihe ohne Doppelungen Java Basics - Anfänger-Themen 6
L Kombinationen einer Menge rekursiv berechnen Java Basics - Anfänger-Themen 11
K Kombinationen der Elemente einer ArrayList Java Basics - Anfänger-Themen 4
C Alle Möglichen Kombinationen eines Arrays Java Basics - Anfänger-Themen 5
F Knifflig: Kombinationen von Zeiträumen Java Basics - Anfänger-Themen 3
D Array List mit Objekten sortieren Java Basics - Anfänger-Themen 2
T Kollision von 2 Objekten Java Basics - Anfänger-Themen 2
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
B Reflection ändern von Objekten in Objekten Java Basics - Anfänger-Themen 12
H Kompliziertes Sortieren einer ArrayList mit Objekten(Sortieren nach X und Y) Java Basics - Anfänger-Themen 11
T Permanentes speichern von Objekten in einer ArrayList Java Basics - Anfänger-Themen 6
N Vererbung Queue bestehend aus Superclass- und Subclass-Objekten Java Basics - Anfänger-Themen 7
B Compiler-Fehler Array aus Objekten übergeben Java Basics - Anfänger-Themen 7
YAZZ Schlüsselworte Töten von Objekten Gameover Java Basics - Anfänger-Themen 2
F Abstand zwischen zwei Objekten berechnen wie? Java Basics - Anfänger-Themen 1
districon Vergleichen von Objekten Java Basics - Anfänger-Themen 20
Zeppi OOP Array in Objekten Java Basics - Anfänger-Themen 4
LetsSebi Methode, die einen arry von objekten speichert in einer datei Java Basics - Anfänger-Themen 6
JavaNoobi Try and Catch und übergabe von Objekten Java Basics - Anfänger-Themen 2
A Klasse Menge mit Objekten der Klasse Person Java Basics - Anfänger-Themen 8
S Auf Array aus Objekten zugreifen? Java Basics - Anfänger-Themen 1
D Mit Objekten rechnen, Textfield, JavaFX, Noob Java Basics - Anfänger-Themen 8
N enum Attribut von Objekten einer Hashmap ausgeben Java Basics - Anfänger-Themen 6
A Auf Eigenschaften von Objekten anderer Klassen zugreifen Java Basics - Anfänger-Themen 5
G Problem beim Speichern von Objekten in einer Datei Java Basics - Anfänger-Themen 7
N Klassen Rekursion mit Feldern von Objekten Java Basics - Anfänger-Themen 14
D Operatoren Mit Objekten rechnen Java Basics - Anfänger-Themen 7
E Datentypen Einfügen von Objekten in eine Map Java Basics - Anfänger-Themen 2
S Pane nach speziellen Child Objekten durchsuchen Java Basics - Anfänger-Themen 3
B ID von unterschiedlichen Objekten bekommen? Java Basics - Anfänger-Themen 2
T Daten von Objekten speichern Java Basics - Anfänger-Themen 7
PaperHat Programmieraufgabe - Objekte in Objekten Java Basics - Anfänger-Themen 2
L Rechnen mit Objekten Java Basics - Anfänger-Themen 3
S werte von objekten in schleife verändern Java Basics - Anfänger-Themen 14
D Zusammenarbeit von Objekten Java Basics - Anfänger-Themen 1
Y Begrenzte Anzahl an Objekten? Java Basics - Anfänger-Themen 12
Kornblume Nulltyp eines Arrays von Objekten? Java Basics - Anfänger-Themen 10
A Frage zur Aufgabe Uhrzeit einstellen mit Objekten Java Basics - Anfänger-Themen 18
M Generische Liste aus Comparable-Objekten Java Basics - Anfänger-Themen 6
G Klassen Call by Value auch bei Objekten? Java Basics - Anfänger-Themen 2
R Verständnisfrage zu Objekten u. Übergabeparameter Java Basics - Anfänger-Themen 8
arjoopy Kapselung Übergabe von Objekten aus ArrayList Java Basics - Anfänger-Themen 4
schoenosrockos Unterschied zwischen Objekten und vererbungen Java Basics - Anfänger-Themen 1
M Speichern von Objekten - Verfügbarkeit bei erneutem Aufruf Java Basics - Anfänger-Themen 3
R Methoden Methode ruft Methode auf, ruft Methode auf (mit Objekten) Java Basics - Anfänger-Themen 4
S Serialisierung: Laden von Objekten - Risiken? Java Basics - Anfänger-Themen 4
Shizmo PriorityQueue mit Objekten Java Basics - Anfänger-Themen 10
E Instanzieren von Objekten verkürzen Java Basics - Anfänger-Themen 1
F Interaktion von Objekten verschiedener Klassen... Java Basics - Anfänger-Themen 13
D Effiziente Verwaltung der Objekten und Unterobjekten Java Basics - Anfänger-Themen 18
N Dauer zwischen zwei LocalDateTime Objekten berechnen? Java Basics - Anfänger-Themen 4
L Subklasse von ArrayList nur mit bestimmten Objekten füllen Java Basics - Anfänger-Themen 1
E Erste Schritte Gute Erklärung zu Objekten / Klassen / Methoden / Sichtbarkeiten auf Deutsch Java Basics - Anfänger-Themen 3
S Problem mit augabe von Objekten Java Basics - Anfänger-Themen 3
T Junit Mockito: Instanz von inneren erzeugten Objekten Java Basics - Anfänger-Themen 4
P Zugriff auf Felder in ArrayList Objekten Java Basics - Anfänger-Themen 2
W Was passiert mit Objekten die nicht in Objektvariablen initialisiert werden ? Java Basics - Anfänger-Themen 3
D Zugriff auf von einer anderen Klasse erstellten Objekten Java Basics - Anfänger-Themen 5
S Liste mit Objekten und Listen Java Basics - Anfänger-Themen 9
Y Gleiche Arrays aus einem Array mit Objekten Java Basics - Anfänger-Themen 5
K Min eines Arrays mit Objekten Java Basics - Anfänger-Themen 6
M Array mit Objekten lässt sich nicht auslesen Java Basics - Anfänger-Themen 10
T Statische Arrays von Objekten Java Basics - Anfänger-Themen 2
J Methoden Einfügen von Objekten nach Alphabet in ArrayList funktioniert nicht Java Basics - Anfänger-Themen 2
B Erste Schritte Anzeige von Graphics Objekten einzeln aktualisieren Java Basics - Anfänger-Themen 1
TheSorm Koordinaten von gedrehten Objekten Java Basics - Anfänger-Themen 4
D Bestimmte Werte von Objekten aus einer ArrayList in eine andere ArrayList kopieren Java Basics - Anfänger-Themen 14
B Aliasing bei null-Objekten Java Basics - Anfänger-Themen 3
O Java Erzeugung von neuen Objekten Java Basics - Anfänger-Themen 1
J Verständnisfragen zu dem Thema Objekten Java Basics - Anfänger-Themen 7
J Array von Objekten, wie schauts im Heap / Stack aus ? Java Basics - Anfänger-Themen 7
O Größe von Objekten Java Basics - Anfänger-Themen 5
Y Variable Menge von Objekten erzeugen und mit ihren Attributen rechnen Java Basics - Anfänger-Themen 7
kaoZ Best Practice Verständnisfrage Listener bei lokalen Objekten Java Basics - Anfänger-Themen 8
F Umgang mit referenzierten Objekten bei ArrayList Java Basics - Anfänger-Themen 1
M Löschen von Objekten während Iteration über Liste Java Basics - Anfänger-Themen 9
E Array von Objekten einer selbst definierten Klasse mit eindeutigem Namen Java Basics - Anfänger-Themen 2
C For schleife mit Array und Objekten Java Basics - Anfänger-Themen 17
kaoZ Input/Output Android : Deserialisieren von mehreren Objekten in einer Datei Java Basics - Anfänger-Themen 0
U Übergabe von Objekten Java Basics - Anfänger-Themen 0
C Werte aus zwei Objekten miteinander vergleichen Java Basics - Anfänger-Themen 3
Joew0815 Interface JSON Objekte aus Java Objekten erzeugen Java Basics - Anfänger-Themen 9
D Sortieren von int Werten von Objekten in einer LinkedList, kann nicht auf int Werte zugreifen Java Basics - Anfänger-Themen 3
E Erste Schritte Sortieren von Objekten in doppelt-verlinkter Liste Java Basics - Anfänger-Themen 9
R addition von 2 Array Objekten Java Basics - Anfänger-Themen 5
V Grundlegendes Zu Objekten/Klassen Java Basics - Anfänger-Themen 10

Ähnliche Java Themen

Neue Themen


Oben