Я хочу создать Java-метод, который принимает inputArray = Object[n][]
, где n может быть любым целым числом и выводит список возможных комбинаций n-размера между всеми значениями n подмассивов. Ниже приведен пример:Сопоставления значений n подмассивов в Java
входного массив: (где объект = строка и п = 3)
String[] subarrayA = {"A0","A1","A2"};
String[] subarrayB = {"B0","B1"};
String[] subarrayC = {"C0","C1","C2","C3"};
String[3][] inputArray = {subarrayA, subarrayB, subarrayC};
Желаемого выход:
{A0,B0,C0},{A0,B0,C1},{A0,B0,C2},{A0,B0,C3},
{A0,B1,C0},{A0,B1,C1},{A0,B1,C2},{A0,B1,C3},
{A1,B0,C0},{A1,B0,C1},{A0,B0,C2},{A1,B0,C3},
{A1,B1,C0},{A1,B1,C1},{A1,B1,C2},{A1,B1,C3},
{A2,B0,C0},{A2,B0,C1},{A2,B0,C2},{A2,B0,C3},
{A2,B1,C0},{A2,B1,C1},{A2,B1,C2},{A2,B1,C3}
Очевидно, что я не могу иметь фиксированные вложенные циклы внутри мой метод, так как я не знаю n
заранее. Итак, я предполагаю, что единственный способ решить это будет через рекурсивный метод? Любые рекомендации?
P.S: Я знаю простой combination-related posts на веб-сайте.
Это домашнее задание? Что вы пробовали? – Scorpion
Нет, это не домашнее задание. Я пытаюсь создать предыдущую таблицу вероятности для моей байесовской сети на основе набора данных, который имеет только «категориальные» столбцы. Мне нужны комбинации для создания SQL-запросов с заданными значениями столбцов на лету. – Rhubarb
В правильных математических терминах желаемый результат является * декартовым произведением * n наборов ввода. («n-размерные комбинации между всеми значениями n подмассивов», вероятно, также включают в себя {A0, A1, B0}.) – meriton