Advertisement
Guest User

Untitled

a guest
Jul 4th, 2022
30
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.05 KB | None | 0 0
  1.     public static void main(String[] args) throws Exception {
  2.         combinations(3, 4, 2).forEach(System.out::println);
  3.     }
  4.  
  5.     public static List<DiscreteLocation> combinations(int... limits) {
  6.         List<DiscreteLocation> result = new ArrayList<>();
  7.         combinations(limits, new int[limits.length], 0, result);
  8.         return result;
  9.     }
  10.  
  11.     private static void combinations(int[] limits, int[] values, int currentDimension, List<DiscreteLocation> results) {
  12.         boolean lastDimension = currentDimension == limits.length - 1;
  13.         for (int i = 0; i < limits[currentDimension]; i++) {
  14.             values[currentDimension] = i;
  15.             if (lastDimension) {
  16.                 results.add(new DiscreteLocation(values));
  17.             } else {
  18.                 combinations(limits, values, currentDimension + 1, results);
  19.             }
  20.         }
  21.     }
  22.  
  23.     record DiscreteLocation(List<Integer> coordinates) {
  24.         DiscreteLocation(int... coordinates) {
  25.             this(IntStream.of(coordinates).boxed().toList());
  26.         }
  27.     }
  28.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement