Запитання з тегом «recursion»

Питання щодо таких об'єктів, як функції, алгоритми або структури даних, які виражаються за допомогою "менших" екземплярів самих себе.

4
Що таке хвостова рекурсія?
Я знаю загальну концепцію рекурсії. Я натрапив на концепцію хвостової рекурсії під час вивчення алгоритму швидкості. У цьому відео алгоритму швидкого сортування з MIT о 18:30 секунди професор говорить, що це хвостовий рекурсивний алгоритм. Мені не ясно, що насправді означає рекурсія хвоста. Чи може хтось пояснити концепцію належним прикладом? Деякі …

5
Ітерація може замінити рекурсію?
Я бачив весь стек Overflow, наприклад, тут , тут , тут , тут , тут і деяких інших, я не хочу зазначити, що "будь-яка програма, яка використовує рекурсію, може бути перетворена в програму, використовуючи лише ітерацію". Навіть була висококваліфікована нитка з дуже схваленою відповіддю, яка сказала так, що це можливо. …

6
Що найбільш ефективно для GCD?
Я знаю, що алгоритм Евкліда є найкращим алгоритмом отримання GCD (великого загального дільника) списку натуральних чисел. Але на практиці ви можете кодувати цей алгоритм різними способами. (У моєму випадку я вирішив використовувати Java, але C / C ++ може бути іншим варіантом). Мені потрібно використовувати найефективніший код, можливий у своїй …


2
Рекурсивні визначення індуктивного типу з вкладеними компонентами
Розглянемо індуктивний тип, який має деякі рекурсивні явища у вкладеному, але суто позитивному місці. Наприклад, дерева з кінцевим розгалуженням з вузлами, що використовують загальну структуру даних списку для зберігання дітей. Inductive LTree : Set := Node : list LTree -> LTree. Наївний спосіб визначення рекурсивної функції над цими деревами шляхом …

3
Чому петлі швидші, ніж рекурсія?
На практиці я розумію, що будь-яка рекурсія може бути записана у циклі (і навпаки (?)), І якщо ми вимірюємо з реальними комп'ютерами, то виявляємо, що петлі швидші, ніж рекурсії для тієї ж проблеми. Але чи є якась теорія, що зумовлює це, чи це в основному емпіричне?

2
Чи суперечить комбінатор Y проти листування Кері-Говарда?
Комбінатор Y має тип . За кореспонденцією Керрі-Говарда, оскільки тип ( a → a ) → a заселений, він повинен відповідати справжній теоремі. Однак a → a завжди відповідає дійсності, тому видається, що тип комбінатора Y відповідає теоремі a , що не завжди відповідає дійсності. Як це може бути?( a …

3
Чи можна обходити дерево без рекурсії, стека чи черги та лише жменьки покажчиків?
Пів десятиліття тому я сидів у класі структур даних, де професор пропонував додатковий кредит, якщо хтось міг перейти дерево, не використовуючи рекурсії, стека, черги тощо (або будь-яких інших подібних структур даних) та лише декількох покажчиків. Я придумав те, що, на мою думку, було очевидною відповіддю на це питання, яке в …

2
Чи припиниться ця програма для кожного цілого?
У тесті на частину підготовки до GATE виникло питання: f(n): if n is even: f(n) = n/2 else f(n) = f(f(n-1)) Я відповів "Це закінчиться для всіх цілих чисел", оскільки навіть для деяких негативних цілих чисел воно закінчиться як помилка переповнення стека . Але мій друг не погодився сказати, що …

2
Яка властивість мінусів дозволяє усунути хвостові модулі рекурсії хвоста?
Мені знайома ідея усунення основної хвостової рекурсії, де функції, які повертають собі прямий результат дзвінка, можуть бути переписані у вигляді ітеративних циклів. foo(...): # ... return foo(...) Я також розумію, що, як особливий випадок, функцію все одно можна переписати, якщо рекурсивний виклик буде завернуто у виклик cons. foo(...): # ... …

6
Приклади складних рекурсивних алгоритмів
Я пояснював другові відомий детермінований алгоритм вибору лінійного часу (медіана алгоритму медіанів). Рекурсія в цьому алгоритмі (хоча і дуже проста) є досить складною. Є два рекурсивні дзвінки, кожен з різними параметрами. Я намагався знайти інші приклади таких цікавих рекурсивних алгоритмів, але не зміг знайти жодного. Всі рекурсивні алгоритми, які я …

1
Це загальний спосіб перетворення будь-якої рекурсивної процедури в хвостову рекурсію?
Здається, я знайшов загальний спосіб перетворити будь-яку рекурсивну процедуру в хвостову рекурсію: Визначте допоміжну допоміжну процедуру з додатковим параметром "результат". Застосуйте те, що було б застосовано до зворотного значення процедури до цього параметра. Для початку зателефонуйте на цю процедуру допомоги. Початкове значення параметра "результат" - це значення для точки виходу …

4
Складність рекурсивного алгоритму Фібоначчі
Використовуючи наступний рекурсивний алгоритм Фібоначчі: def fib(n): if n==0: return 0 elif n==1 return 1 return (fib(n-1)+fib(n-2)) Якщо я введіть число 5, щоб знайти fib (5), я знаю, що це виведе 5, але як я вивчити складність цього алгоритму? Як обчислити етапи, що стосуються?

1
Вежі Ханої, але з довільною початковою та кінцевою конфігурацією
Нещодавно я зіткнувся з цією проблемою , варіацією башт Ханой . Постановка проблеми: Розглянемо наступний варіант добре відомих проблемних башт Ханої: Нам надано ннn веж і м дисків розміром складених на деяких вежах. Ваша мета - перенести всі диски на вежу за кілька кроків, якими ви можете керувати, але з …

3
Чи мають "індуктивно" та "рекурсивно" дуже подібні значення?
Чи означають "індуктивно" та "рекурсивно" дуже подібні? Наприклад, якщо існує алгоритм, який визначає n-dim вектор шляхом визначення його перших k + 1 компонентів на основі визначених його перших k компонентів, і ініціалізований з першим компонентом, ви б назвали це працює рекурсивно або індуктивно? Я використовував "рекурсивно", але сьогодні хтось сказав …

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.