«recursion» 태그된 질문

"작은"인스턴스를 사용하여 표현되는 함수, 알고리즘 또는 데이터 구조와 같은 개체에 대한 질문입니다.

4
꼬리 재귀는 무엇입니까?
나는 재귀의 일반적인 개념을 알고있다. 퀵 정렬 알고리즘을 연구하면서 테일 재귀 개념을 발견했습니다 . 이 년 MIT에서 빠른 정렬 알고리즘의 비디오 18시 반 초 교수의이 꼬리 재귀 알고리즘이라고 말했다. 꼬리 재귀가 실제로 무엇을 의미하는지는 분명하지 않습니다. 누군가 적절한 개념으로 개념을 설명 할 수 있습니까? 여기 SO 커뮤니티 에서 제공하는 답변이 …

5
반복이 재귀를 대체 할 수 있습니까?
나는 스택 오버플로를 보았습니다. 예를 들어 여기 , 여기 , 여기 , 여기 , 여기 그리고 여기 에 언급하고 싶지 않은 다른 것들, "재귀를 사용하는 모든 프로그램은 반복만을 사용하는 프로그램으로 변환 될 수 있습니다." 가능하다고 답한 고도로 공감 된 답 을 가진 고도로 공감 된 스레드 가있었습니다 . 지금은 그들이 …

6
GCD에 가장 효율적인 것은 무엇입니까?
유클리드의 알고리즘은 양의 정수 목록의 GCD (큰 공통 제수)를 얻는 데 가장 적합한 알고리즘이라는 것을 알고 있습니다. 그러나 실제로이 알고리즘을 다양한 방법으로 코딩 할 수 있습니다. (제 경우에는 Java를 사용하기로 결정했지만 C / C ++가 다른 옵션 일 수 있습니다). 내 프로그램에서 가능한 가장 효율적인 코드를 사용해야합니다. 재귀 모드에서는 다음과 …


2
중첩 된 구성 요소가있는 유도 유형에 대한 재귀 정의
중첩되었지만 엄격하게 긍정적 인 위치에 재귀 발생이있는 유도 유형을 고려하십시오. 예를 들어, 일반 목록 데이터 구조를 사용하여 하위를 저장하는 노드가있는 유한 분기가있는 트리입니다. Inductive LTree : Set := Node : list LTree -> LTree. 트리와 트리 목록을 반복하여 이러한 트리에 대해 재귀 함수를 정의하는 순진한 방법은 작동하지 않습니다. 다음 size은 …


2
Y 콤비 네이터는 Curry-Howard 통신에 위배됩니까?
Y 콤비 의 유형은 입니다. Curry-Howard 서신에 따르면, 는 사람이 거주하기 때문에 실제 정리와 일치해야합니다. 그러나 는 항상 true이므로 Y 조합기의 유형이 정리 해당하는 것처럼 보이지만 항상 그렇지는 않습니다. 어떻게 이럴 수있어?( a → a ) → a a → a a( a → a ) → a(ㅏ→ㅏ)→ㅏ(a \rightarrow 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(...): # ... return (..., foo(...)) 어떤 속성 cons이 이것을 허용합니까? …

6
정교한 재귀 알고리즘의 예
나는 유명한 결정 론적 선형 시간 선택 알고리즘 (중위 알고리즘의 중간 값 알고리즘)을 친구에게 설명하고있었습니다. 이 알고리즘의 재귀는 (매우 단순하지만) 매우 정교합니다. 각각 다른 매개 변수를 가진 두 개의 재귀 호출이 있습니다. 흥미로운 재귀 알고리즘의 다른 예를 찾으려고했지만 찾을 수 없었습니다. 내가 생각해 낼 수있는 모든 재귀 알고리즘은 단순한 꼬리 …

1
이것이 재귀 프로 시저를 꼬리 재귀로 변환하는 일반적인 방법입니까?
내가 변환하는 일반적인 방법을 발견 한 것 같습니다 어떤 꼬리 재귀에 재귀 절차를 : 추가 "result"매개 변수를 사용하여 헬퍼 서브 프로 시저를 정의하십시오. 프로 시저의 리턴 값에 적용될 항목을 해당 매개 변수에 적용하십시오. 시작하려면이 도우미 절차를 호출하십시오. "result"매개 변수의 초기 값은 재귀 프로세스의 종료점에 대한 값이므로 재귀 프로세스가 축소되기 시작하는 …

4
재귀 피보나치 알고리즘의 복잡성
다음과 같은 재귀 피보나치 알고리즘을 사용합니다. def fib(n): if n==0: return 0 elif n==1 return 1 return (fib(n-1)+fib(n-2)) fib (5)를 찾기 위해 숫자 5를 입력하면 이것이 5를 출력한다는 것을 알고 있지만이 알고리즘의 복잡성을 어떻게 조사합니까? 관련된 단계를 어떻게 계산합니까?

1
하노이 타워이지만 임의의 초기 및 최종 구성
최근에 나는 이 문제 , 즉 하노이 탑의 변형을 발견했다 . 문제 설명: 잘 알려진 문제 하노이 타워의 다음과 같은 변형을 고려하십시오. 우리는 타워와 1 , 2 , 3 , … , m 크기의 m 디스크가 일부 타워에 쌓여 있습니다. 목표는 관리 할 수있는 횟수만큼 적은 수의 이동만으로 모든 디스크를 …

3
“귀납적으로”와“재귀 적으로”는 매우 비슷한 의미가 있습니까?
"유도 적으로"와 "재귀 적으로"는 매우 비슷한 의미입니까? 예를 들어, 결정된 첫 번째 k 개의 구성 요소를 기반으로 첫 번째 k + 1 구성 요소를 결정하여 n-dim 벡터를 결정하는 알고리즘이 있고 첫 번째 구성 요소로 초기화 된 경우 재귀 적으로 또는 유도 적으로 작동합니까? 나는 "재귀 적으로"를 사용하고 있지만, 오늘날 누군가는 …

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.