Permutacja tablicy z powtarzaniem w Javie
Na stronie znajdują się podobne pytania, które pomogły, ale nie mogę rozwiązać tego problemu, więc mam nadzieję, że nie jest to powtarzalne.
Jest to zadanie domowe, w którym masz ustawioną tablicę znaków [A, B, C] i musisz użyć rekursji, aby uzyskać wszystkie permutacje (z powtarzaniem). Kod, który mam, robi to:
char[] c = {'A', 'B' , 'C'};
public void printAll(char[] c, int n, int k) {
if (k == n) {
System.out.print(c);
return;
}
else {
for (int j = 0; j<n; j++) {
for (int m = 0; m<n; m++) {
System.out.print(c[k]);
System.out.print(c[j]);
System.out.print(c[m] + "\r\n");
}
}
}
printAll(c, n, k+1);
}
Jednak parametr n powinien określać długość wyjścia, więc podczas gdy ta funkcja wypisuje wszystkie permutacje o długości 3, nie może ich wykonać o długości 2. Próbowałem wszystkiego, o czym mogę pomyśleć, i przeglądałem wyniki wyszukiwania Google, a ja sam jestem zła za to, że nie jestem w stanie rozwiązać tego, co wydaje się być raczej prostym problemem.