Kombinationen erzeugen

Phash

Top Contributor
Moin,

mir ist gerade langweilig, und ich versuche mir ein wenig meine Zeit zu vertreiben.

Ich habe mir eine Aufgabe gesucht, an der ich mir allerdings gerade die Zähne ausbeisse... ich habe eine Denkblockade

Aufgabenstellung:
Ich habe eine Gruppe von Spieleinheiten, die über verschiedene Attribute verfügen.
Der Gegner hat auch eine Gruppe von Spieleinheiten.

die maximale Anzahl der Einheiten ist jeweils 100.

Die Einheiten des Gegners sind bekannt. Ich möchte nun alle meine Spieleinheiten dagegen testen. Bzw alle Kombinationen daraus.

das heisst: ich habe 50 Bogenschützen, 100 Soldaten, 50 Reiter und 20 Katapulte (Nur um einen Einblick zu erhalten)

Welche Kombination ist nun die beste gegen den Gegner?


Meine Idee wäre jetzt einfach gewesen, alle möglichen Kombinationen meiner Einheiten in 10er Schritten zu erzeugen, und die dann in einer Simulation gegen den Feind antreten zu lassen. Danach merk ich mir die Effizienz der Aufstellung.
Am Ende weiss ich, welche Aufstellungen am besten waren, und ich würde evtl die besten 3 Aufstellungen nochmal um +/-10 variieren lassen um dann zu ermitteln, wer jetzt der beste ist.


Da die Einheitenarten nicht auf 4 beschränkt sind, sondern jederzeit neue hinzu kommen könnten, fällt ein Ansatz mit verschachtelten for-Schleifen weg.


Meine Frage: wie finde ich am effizientesten alle möglichen Kombinationen, und: gibt es vielleicht eine elegantere Lösung?
 

Marco13

Top Contributor
So pauschal: Vergiss es. Wenn du von "100" redest und von "alle Kombinationen", dann wird da sicher irgendwo was mit "100!" drin vorkommen (9.33262154 × 10^157). Die einzige Möglichkeit ist, ggf. vorhandenes Wissen auszunutzen, und damit die Anzahl der Möglichkeiten zu reduzieren. Vielleicht um den Faktor 1000000000000000000000000000000000000000000000000000000000000000000, damit man nur noch 10^100 Möglichkeiten untersuchen muss :joke:
 

Phash

Top Contributor
deswegen ja die Idee, in 10er Schritten zu kombinieren und nur Kombinationen die dann sinnvoll sind weiter zu untergliedern
 

Marco13

Top Contributor
Wenn "10er-Schritte" nur heißt, dass man das von 10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 auf 1000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 reduziert, bringt das nicht viel. Es gibt sicher jede Menge Einschränkungen und Zusatzinformationen, die du noch nicht genannt hast (EIN Bogenschütze gegen 100 Reiter ist sinnols, ZWEI Bogenschützen gegen 100 Reiter ist sinnlos, DREI Fledermäus.. äh... Bogeschützen gegen 100 Reiter ist sinnlos...)

Hier war auch mal ein Thread, wo jemand solche Kombinationen durchprobieren wollte, um eine Strategie (Cheat Sheet) für irgendein Online-Spiel zu erhalten, hab' ihn jetzt auf die Schnelle nicht gefunden, aber kannst ja ggf. mal suchen.

Allgemeine Utilities zu Kombinationen gibt's z.B. unter http://www.java-forum.org/codeschnipsel-u-projekte/81973-combinatorics.html#post646341 , aber wenn man nicht einen Wegweiser hat, mit dem man die Suche drastisch einschränken kann, würde ich da eher zu einer Heuristik greifen. Sowas wie Hillclimbing, irgendwas Generic Algorithm-artiges, oder Simulated Annealing ... das ist für spezielle Fälle meistens gar nicht sooo aufwändig.
 
Ä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
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
M Kombinationen von Objekten bilden Java Basics - Anfänger-Themen 5
W Javadoc HTML erzeugen mit allen dependency Java Basics - Anfänger-Themen 11
J Delay erzeugen, ohne Programm zu blockieren Java Basics - Anfänger-Themen 7
Say abstract class und Objekt erzeugen - Dringend Hilfe Java Basics - Anfänger-Themen 10
BeginnerJava String mit vorgegebener Länge und Buchstaben erzeugen/ mit Leerstellen Java Basics - Anfänger-Themen 8
frager2345 Singleton-Muster Java ->Nur eine Instanz einer Klasse erzeugen können Java Basics - Anfänger-Themen 45
H Artefact mit Bild erzeugen Java Basics - Anfänger-Themen 11
E Rekursiv Objekte erzeugen - geht das? Java Basics - Anfänger-Themen 2
F Aus eingelesener Datei korrekt Objekte erzeugen Java Basics - Anfänger-Themen 5
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
C Runnable Jar-File erzeugen Java Basics - Anfänger-Themen 14
W Mehrfach das gleiche Attribut für ein Objekt erzeugen (mit verschiedenen Werten) Java Basics - Anfänger-Themen 2
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
C Instanzen, wann muss ich Instanzen erzeugen & wo?) Java Basics - Anfänger-Themen 23
S Erzeugen einer eindeutigen ID Java Basics - Anfänger-Themen 2
E Objekt durch Benutzer über Konsole erzeugen - Java Java Basics - Anfänger-Themen 3
L Simples Spielfeld erzeugen Java Basics - Anfänger-Themen 1
G Anklickbaren Text erzeugen Java Basics - Anfänger-Themen 2
I Object-Oriented Programming, Objekt erzeugen Java Basics - Anfänger-Themen 1
P Objekt aus String-Array erzeugen Java Basics - Anfänger-Themen 104
S Mit nextGaussian() positive Zahlen erzeugen? Java Basics - Anfänger-Themen 39
S Array erzeugen mit verschiedener Verteilung Java Basics - Anfänger-Themen 11
B Automatisch Objekte erzeugen mit verschiedenen Namen Java Basics - Anfänger-Themen 4
L Dynamische Anzahl an Arrays mit verschiedenen Namen erzeugen Java Basics - Anfänger-Themen 6
J Doppelte Ausgabe erzeugen Iterator Java Basics - Anfänger-Themen 6
N ArrayList in eigener Klasse erzeugen mit Zugriff Java Basics - Anfänger-Themen 7
K Methoden JTExtField mit Array erzeugen Java Basics - Anfänger-Themen 13
B Kann man eine Tabelle in Eclipse erzeugen und damit arbeiten? Java Basics - Anfänger-Themen 8
E Best Practice Jar-file mit zwei Klassen und externer Bibliothek über Konsole erzeugen Java Basics - Anfänger-Themen 13
I TextField Array mit for Loop erzeugen Java Basics - Anfänger-Themen 4
M Objekte mit einer Schleife mehrmals erzeugen Java Basics - Anfänger-Themen 17
G Objekt der selben Klasse wie selbst mit Aufrufen des Konstruktors erzeugen Java Basics - Anfänger-Themen 14
J Eindeutige Nummer (8 stellig) erzeugen Java Basics - Anfänger-Themen 9
C Instanz einer Klasse während if-Abfrage erzeugen und bei zweiter if-Abfrage wiederverwenden Java Basics - Anfänger-Themen 6
B OOP Objekt in IF erzeugen - funktioniert nicht so richtig Java Basics - Anfänger-Themen 11
neerual Int-Felder erzeugen Java Basics - Anfänger-Themen 16
R Objekte zur Laufzeit in Schleife erzeugen und in ArrayList ablegen Java Basics - Anfänger-Themen 4
D Erste Schritte Random erzeugen Java Basics - Anfänger-Themen 28
P Objekt mit =new in Methode erzeugen Java Basics - Anfänger-Themen 4
L Threads Laufbild Erzeugen Problem mit Aktualisieren des JPanels Java Basics - Anfänger-Themen 2
J In Java einen Ton erzeugen Java Basics - Anfänger-Themen 8
C Array Muster erzeugen Java Basics - Anfänger-Themen 2
S Objekte "gegebenfalls" erzeugen Java Basics - Anfänger-Themen 5
D Java Ausdruck erzeugen / Formular Java Basics - Anfänger-Themen 4
N Objekt in Methode einer anderen Klasse erzeugen Java Basics - Anfänger-Themen 9
R Baum erzeugen Java Basics - Anfänger-Themen 61
D Objekt per If erzeugen. Java Basics - Anfänger-Themen 11
J Bildschirmausgabe erzeugen Java Basics - Anfänger-Themen 30
B Beliebig viele Rechtecke erzeugen Java Basics - Anfänger-Themen 5
J Objekt mit Methodendruchlauf erzeugen Java Basics - Anfänger-Themen 1
Detox Class Datei erzeugen nicht möglich über cmd Java Basics - Anfänger-Themen 1
P Erste Schritte [gelöst]Erzeugen einer Klasse aus der Klassenbibliothek Java Basics - Anfänger-Themen 4
C Int mit vorangestellten Nullen und maximal 4 stellen erzeugen. Java Basics - Anfänger-Themen 4
P Input/Output Objekte per Eingabe erzeugen Java Basics - Anfänger-Themen 1
D Erste Schritte Dynamisch Objekte erzeugen und diese durchsuchen Java Basics - Anfänger-Themen 7
U JNA: Strukturen erzeugen Java Basics - Anfänger-Themen 8
S Variablen Variable erzeugen und Array mit Variablen befüllen Java Basics - Anfänger-Themen 26
S Header- Datei erzeugen mit javah Java Basics - Anfänger-Themen 1
J Objekte zur Laufzeit erzeugen und direkt verwenden Java Basics - Anfänger-Themen 9
R Erste Schritte Schleife erzeugen (mit If Anweisung) Java Basics - Anfänger-Themen 3
I HTML Tabelle nur so lange erzeugen bis Höhe erreicht Java Basics - Anfänger-Themen 9
M Zusatzzahlen in array erzeugen Java Basics - Anfänger-Themen 5
B Stützstellen (Vektor) erzeugen? Java Basics - Anfänger-Themen 8
Z Erste Schritte 9x9 Felder Erzeugen+Aufrufen Java Basics - Anfänger-Themen 1
Y Variable Menge von Objekten erzeugen und mit ihren Attributen rechnen Java Basics - Anfänger-Themen 7
J Anzahl von for-Schleifen in Abhängigkeit von Zahleneingabe erzeugen Java Basics - Anfänger-Themen 1
J JLabels in schleife erzeugen mit verschiedenen namen? Java Basics - Anfänger-Themen 5
K JLabel zur Laufzeit dynamisch erzeugen Java Basics - Anfänger-Themen 7
F Input/Output Blocking file read erzeugen Java Basics - Anfänger-Themen 0
Thallius Klassen aus Classname programmatisch erzeugen. Wie geht das in java? Java Basics - Anfänger-Themen 5
B Zufallsdatum innerhalb eines bestimmten Bereiches erzeugen Java Basics - Anfänger-Themen 3
D JComboBox erzeugen Java Basics - Anfänger-Themen 1
J Erste Schritte Array dyn. erzeugen Java Basics - Anfänger-Themen 2
A OOP Objekte per Schleife erzeugen Java Basics - Anfänger-Themen 1
F Superklasse nochmals erzeugen? Java Basics - Anfänger-Themen 7
G Instanzen eines Interfaces erzeugen Java Basics - Anfänger-Themen 7
M Variablen Variable zur Laufzeit erzeugen Java Basics - Anfänger-Themen 3
P Vererbung Neues Objekt aus Vorlage erzeugen Java Basics - Anfänger-Themen 1
M Erzeugen beliebig vieler Objekte, aber wie wechselnde Bezeichner? Java Basics - Anfänger-Themen 5
W Objekte erzeugen Java Basics - Anfänger-Themen 2
N Interface Interface (sinnvoll) erzeugen Java Basics - Anfänger-Themen 8
L 6stellige Zufallszahlen erzeugen & auf einzigartigkeit prüfen Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben