Programm zur Rekursion

Ru$h

Aktives Mitglied
Hallo,
ich möchte ein Programm schreiben, welches Reiter sowie deren Können und Wünsche, und Pferde sowie deren Eigenschaften verwaltet. Das Programm soll REKURSIV eine mögliche Zuordnung von Reitern und Pferden so ermitteln, dass eine maximale Anzahl von Wünschen berücksichtigt wird. Dabei müssen das Können der Reiter und die Eigenschaften der Pferde auf jeden Fall beachtet werden.

Beispiel:

Reiter Können Wunschpferde
Anja Anfängerin Nicki, Pucki; Alex
Gabi gute Reiterin alle
...

Pferd Eigenschaft
Alex für Anfänger
Nicki für Anfänger
...

Habt ihr eine Idee, wie man dies rekursiv lösen könnte?
Rekursion ist überhaupt nicht mein Fall, deshalb bin ich für jeden Vorschlag, Tipp, etc. enorm dankbar.
 
Wahrscheinlich sollst du da alle möglichen Permutationen durchgehen.
Hier ist ein Beispiel, wie so was aussehen kann
Java:
import java.util.Arrays;
import java.util.LinkedList;

public class Permutations {

  private static void permutations(String[] elems, int start, LinkedList<String[]> result) {
    if(start >= elems.length - 1) {
      result.add(elems.clone());
    } else {
      for(int i = start; i < elems.length; i++) {
        String t = elems[start];
        elems[start] = elems[i];
        elems[i] = t;
        permutations(elems, start + 1, result);
        elems[i] = elems[start];
        elems[start] = t;
      }
    }
  }

  public static void main(String[] args) {
    String[] elems = {"Nicki", "Pucki", "Alex"};
    LinkedList<String[]> comb = new LinkedList<>();
    permutations(elems, 0, comb);
    for(String[] c: comb) {
      System.out.println(Arrays.toString(c));
    };
  }
}
 
Aber es sind schleifen in der Methode, ist das nicht gleichzeitig auch die Definition von iterativ. Was überwiegt nun?
 

Zurück
Oben