Как составить рекурсию по возрастанию? Всем привет, подскажите как составить рекурсию из массива, в которой значения по возрастанию, пример: $arr = [1, 2, 3];
Должно получиться следующее1
1 2
1 3
1 2 3
2
2 3
3
Уверен, что задача решается элементарной рекурсией, но что-то у меня не хватает на это мозгов.
На входе функция должна принимать одномерный массив ['a', 'b', 'c'], данные на выходе должны идти с таким же порядком как и в массиве, т.е. a, ab, abc, ac, b, bc, c

21 Авг 2019 в 06:09
141 +1
0
Ответы
1

Для решения данной задачи можно использовать следующую рекурсивную функцию на PHP:

function generateSubsequences($arr, $start = 0, $subsequence = '') {
if ($start == count($arr)) {
echo $subsequence.PHP_EOL;
return;
}
generateSubsequences($arr, $start + 1, $subsequence); // не включаем текущий элемент
generateSubsequences($arr, $start + 1, $subsequence.$arr[$start]); // включаем текущий элемент
}
$arr = ['a', 'b', 'c'];
generateSubsequences($arr);

Эта функция генерирует все возможные подпоследовательности массива $arr, начиная с индекса $start. При каждом рекурсивном вызове функции проверяется, нужно ли включать текущий элемент в подпоследовательность или нет.

20 Апр в 13:23
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 648 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир