recursion- все статьи тега ➜ страница 2


Как именно работает хвостовая рекурсия?

я почти понимаю, как работает хвостовая рекурсия и разница между ней и нормальной рекурсией. Я только не понимаю, почему это не требуется стек, чтобы помнить свой обратный адрес. // tail recursion int fac_times (int n, int acc) { if (n == 0) return acc; else return fac_times(n - 1, acc * n); } int factorial (int n) { return fac_times (n, 1); } // normal recursion int factorial (int n) { if (n == 0) return 1; else return n * factorial(n - 1); } после вызова самой функции ...

Python: использование рекурсивного алгоритма в качестве генератора

недавно я написал функцию для генерации определенных последовательностей с нетривиальными ограничениями. Проблема пришла с естественным рекурсивным решением. Теперь случается, что даже для относительно небольшого ввода последовательности составляют несколько тысяч, поэтому я предпочел бы использовать свой алгоритм в качестве генератора, а не использовать его для заполнения списка всеми последовательностями. вот пример. Предположим, мы хотим вычислить все перестановки строки с рекурсивной функци ...

Один лайнер для рекурсивного списка каталогов в Ruby?

каков самый быстрый, наиболее оптимизированный, однострочный способ получить массив каталогов (за исключением файлов) в Ruby? Как насчет включения файлов? ...

Как получить все файлы в определенном каталоге в MATLAB?

Мне нужно получить все эти файлы под D:dic и цикл над ними для дальнейшего процесса по отдельности. поддерживает ли MATLAB такие операции? Это может быть сделано в других скриптах,таких как PHP, Python... ...

Рекурсивная функция для формирования многомерного массива из результата базы данных

Я ищу, чтобы написать функцию, которая принимает массив страниц / категорий (из плоского результата базы данных) и генерирует массив вложенных элементов страницы/категории на основе родительских идентификаторов. Я хотел бы сделать это рекурсивно, так что любой уровень вложенности может быть сделано. например: я выбираю все страницы в одном запросе, и это то, что таблица базы данных выглядит как +-------+---------------+---------------------------+ | id | parent_id | title ...

Функциональное программирование-много внимания на рекурсии, почему?

Я знакомлюсь с функциональным программированием [FP] (используя Scala). Одна вещь, которая выходит из моих первоначальных знаний, заключается в том, что FPs сильно зависит от рекурсии. А также кажется, что в чисто FPs единственный способ сделать итерационный материал-это написать рекурсивные функции. и из-за интенсивного использования рекурсии, похоже, следующее, о чем FPs пришлось беспокоиться, были StackoverflowExceptions обычно из-за длинных рекурсивных вызовов обмотки. Это было решаться вве ...

Ханойская башня: рекурсивный алгоритм

хотя у меня нет никаких проблем с пониманием рекурсии, я не могу, кажется, обернуть голову вокруг рекурсивного решения проблемы Ханойской башни. Вот код Википедия: procedure Hanoi(n: integer; source, dest, by: char); Begin if (n=1) then writeln('Move the plate from ', source, ' to ', dest) else begin Hanoi(n-1, source, by, dest); writeln('Move the plate from ', source, ' to ', dest); Hanoi(n-1, by, dest, source); end; End; Я понимаю базовый случай и ...

Рекурсивный ConcurrentHashMap.вызов computeIfAbsent () никогда не завершается. Ошибка или"особенность"?

некоторое время назад, Я написал в блоге о функциональном способе вычисления чисел Фибоначчи Java 8 рекурсивно С ConcurrentHashMap кэш и новый, полезный computeIfAbsent() способ: import java.util.Map; import java.util.concurrent.ConcurrentHashMap; public class Test { static Map<Integer, Integer> cache = new ConcurrentHashMap<>(); public static void main(String[] args) { System.out.println( "f(" + 8 + ") = " + fibonacci(8)); } static int fibonac ...

Бесконечный цикл в конструкторе без for или while

Я сделал тест здесь, но выход-это цикл без конца, я не знаю, почему. на самом деле, я делаю еще один тест, но когда я написал это, я не понимаю, как цикл произошел. Выводится" ABC " многократно. #include <map> #include <string> #include <iostream> class test { public: std::map <int, int> _b; test(); test (std::map<int, int> & im); ~test(); }; test::test() { std::cout<<"abc"; _b.clear(); _b[1]=1; test(_b); } test::test(std::map ...

Список всех файлов и папок в каталоге с рекурсивной функцией PHP

Я пытаюсь пройти через все файлы в каталоге, и если есть каталог, пройти через все его файлы и так далее, пока нет больше каталогов, чтобы перейти. Каждый обработанный элемент будет добавлен в массив результатов в функции ниже. Это не работает, хотя я не уверен, что я могу сделать / что я сделал неправильно, но браузер работает безумно медленно, когда этот код ниже обрабатывается, любая помощь приветствуется, спасибо! код: function getDirContents($dir){ $results = array(); ...

Каково объяснение упражнения 1.6 в SICP?

Я только начинаю работать через SICP (самостоятельно; это не для класса), и я боролся с упражнением 1.6 в течение нескольких дней, и я просто не могу понять это. Это тот, где Алисса переопределяет if С точки зрения cond, например: (define (new-if predicate then-clause else-clause) (cond (predicate then-clause) (else else-clause)) она успешно тестирует его на некоторых простых случаях, а затем использует его для перезаписи программы квадратного корня (которая отлично работала с ...