import java.util.Arrays;
public class VariacieSHOpakovaniami {
int[] pole;
int[] hodnoty;
int h;
public VariacieSHOpakovaniami(int[] hodnoty, int dlzka, int h) {
this.hodnoty = hodnoty;
pole = new int[dlzka];
this.h = h;
}
public void vypis() {
System.out.println(Arrays.toString(pole));
}
public void generuj(int odIndexu) {
if (odIndexu == pole.length) {
vypis();
return;
}
for (int i = 0; i < hodnoty.length; i++) {
if (mozemPridat(hodnoty[i], odIndexu)) {
pole[odIndexu] = hodnoty[i];
generuj(odIndexu + 1);
}
}
}
public boolean mozemPridat(int pridavanaHodnota, int index) {
int pocitadlo = 0;
for (int i = 0; i < index; i++) {
if (pole[i] == pridavanaHodnota)
pocitadlo++;
}
if (pocitadlo == h) {
return false;
}
return true;
}
public static void main(String[] args) {
VariacieSHOpakovaniami v = new VariacieSHOpakovaniami( new int[] { 2, 5,
7, 9 }, 3, 2);
v.generuj(0);
}
}